Направо към съдържанието

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

от Уикипедия, свободната енциклопедия
(пренасочване от Криптограф)
Немска криптомашина Lorenz, ползвана по време на Втората световна война за шифриране на супер-секретни съобщения

Науката Криптография (от гр. κρυπτός, криптос – „скрит“, и γράφω, графо – „пиша“) или тайнопис изучава принципите, средствата и методите за преобразуване на данни (криптиране) с оглед прикриване на тяхната семантика, предотвратяване на неоторизиран достъп или тяхната подмолна промяна и манипулация от трети лица (Противникът). Обратното действие на криптирането е криптоанализът (дешифриране). При него Противникът е математически алгоритъм за тестване и за изучаване на пробиви и уязвимости в криптографските алгоритми.

Криптографските принципи, средства и методи се ползват широко и обстойно от съвременната информатика за осигуряване на кибер сигурност (англ. cyber-security), вкл. поверителност (confidentiality), интегритет на данни (data integrity), неопровержимост (non-repudiation) и автентичност (authenticity).

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

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

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

  • Прав (некодиран) текст – данни (не задължително текстови), предавани без използване на криптография.
  • Кодиран текст (шифрограма) – данни, получени след използване на криптосистема с указан ключ.
  • Шифър (Криптосистема) – семейство обратими преобразувания на открит текст в шифрован.
  • Шифриране (криптиране) – процес на нормално прилагане на криптографско преобразуване на открит текст на основата на алгоритъм и ключ, в резултат на което възниква шифрован текст.
  • Дешифриране (декриптиране) – процес на нормално прилагане на криптографско преобразуване на шифриран текст в открит.
  • Ключ – параметър на шифъра, определящ избора на конкретно преобразуване на дадения текст. В съвременните шифри алгоритъма на шифриране е известен и криптографичната устойчивост на шифъра изцяло се определя от секретността на ключа.
  • Криптоанализ – наука, изучаваща математическите методи за нарушаване на конфиденциалността и интегритета (цялостността) на информацията.
  • Криптоаналитик – човек, създаващ и прилагащ методите на криптоанализа.
  • Криптографията и криптоанализът съставят Криптологията като единна наука за създаване и разбиване на шифри.
  • Криптографски инженеринг (на английски: Cryptographic engineering) е дисциплина, която използва криптографията за разрешаване на човешки проблеми: когато трябва да се гарантира сигурността на данни, идентифициране на хора и устройства или за да се потвърди целостта на данни в рискови ситуации.
  • Криптографска атака – опит на криптоаналитик да предизвика отклонения в атакуемата защитена система за обмен на информация. Успешната криптографска атака се нарича разбиване или отваряне.
  • Криптографска устойчивост – способността на криптографския алгоритъм да противостои на криптоанализ.

История на криптографията и криптоанализа

[редактиране | редактиране на кода]
Използваният в Древна Гърция шифър „скитала“, съвременна реконструкция.

Основните класически видове шифриране са:

  • преместване, при което буквите на съобщението се разместват (например: 'помогни ми' става 'опомнги им' при най-простото преместване)
  • замяна, когато буквите или групи от букви по определено правило се заменят с други букви или групи от букви (например 'fly at once' става 'gmz bu podf' при замяна на всяка буква със следващата в азбуката). Такъв шифър е използвал Юлий Цезар за комуникация с военачалниците си.

Шифрите са се използвали предимно за да се гарантира секретна комуникация в шпионажа, военното дело, и дипломацията. Но криптография се е използвала и за защита на личността, например в индийската Кама Сутра се препоръчва като средство за връзка между любовниците.[1]

Шифровано писмо от Габриел д'Арамон, френски посланик в Турция след 1546, с частично дешифриране – пример за криптография от 16 век

Шифър на нихилистите бил използван от революционерите в Русия по време на терора срещу царския режим.

Шифрираните текстове, получавани след прилагане на класическите шифри винаги съдържат статистическа информация за изходния текст, която може да бъде използвана за разбиването им. След разработването на честотния анализ (може би от арабския енциклопедист ал-Кинди) в IX век, практически всички такива шифри стават уязвими за достатъчно квалифициран дешифратор, чак до измислянето на многоазбучния шифър от Леон Батиста Алберти около 1465 година. Неговото нововъведение се състои в това, че използва различни шрифтове за различните части на съобщението. Също така той изобретява вероятно първата автоматична шифровъчна машина – специално колело за шифроване. В многоазбучния шифър на Виженер за шифриране се използва ключова дума, която контролира замяната на буквите в зависимост от това, коя буква от ключовата дума е използвана. В средата на XIX век английският математик Чарлз Бабидж разработва тест, който може да открие дължината на ключа на шифъра на Виженер, и тогава разглежда шифъра като сбор от обикновени Цезарови шифри.

Шифровъчна машина Енигма, използвана от германците до края на Втората световна война

.

През XIX век става окончателно ясно, че секретността на алгоритъма за шифриране не е гаранция срещу разбиването му, още повече става ясно, че адекватната криптографска защита трябва да остава защитена дори ако противникът го познава напълно. Секретността на ключа трябва да е достатъчна, за да се осигури криптоустойчивост. Този фундаментален принцип е формулиран за първи път от Август Кирхов, холандски лингвист и криптограф, през 1883 г. Алтернативна формулировка прави Клод Шенон като Максимата на Шенон – „врагът знае нашата система“.

За облекчаване на шифрирането са разработвани различни спомагателни устройства. Едно от най-древните е скиталата, измислена в Древна Гърция, представляваща просто пръчка. С появата на многоазбучния шифър, устройствата започват да се усложняват, като например диска с шифротекст на Алберти, квадратната дъска(tabula recta) на Йоханес Тритемиус и дисковият шифър на Томас Джеферсън. Най-известна през XX век е роторната машина Енигма, използвана от немците по време на Втората световна война.[2]

Развитието на електрониката и компютърната техника дава силен тласък в развитието на криптографията и криптоанализа. Започва развиването на академични криптографски изследвания (приблизително от 1970-те години) с публикуването на стандарта DES от NBS, в статията, посветена на алгоритъма Дифи – Хелман,[3] и откриването на алгоритъма RSA. След това акцентът в криптографията се премества от чисто лингвистичните методи към математическите, включително теория на информацията, статистика, комбинаторика, абстрактна алгебра и теория на числата.

Съвременна криптография

[редактиране | редактиране на кода]

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

Бързото развитие на ЕИМ води и до бързо намаляване на криптоустойчивостта на съответните алгоритми. Също така навлизат асиметричните алгоритми и криптографията започва да се използва за удостоверяване на самоличността на подателя чрез подписване с електронен подпис. Криптографията се използва и за защита на данните при банкови преводи, банкови и небанкови карти и други плащания, което спомага за навлизане на електронното банкиране и много улеснява платежните операции.

Разпространени алгоритми:

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

[редактиране | редактиране на кода]

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

  • Дължината на ключа е равна или по-голяма от тази на съобщението.
  • Ключът представлява случайна последователност (псевдослучайните последователности не са неуязвими).
  • Ключът се използва само веднъж.

Недостатък на този метод е необходимостта от предварителен обмен, както и последващото съхранение на ключовете, така че те да не бъдат откраднати.

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

[редактиране | редактиране на кода]

Криптографията с публичен ключ – на български се среща като „инфраструктура на публичния ключ“ (на английски: Public Key Infrastructure, PKI) е особено важна за осигуряване на сигурното предаване на данни в Интернет. За разлика от метода със симетрични ключове, тук ключовете са два и се генерират едновременно по определен алгоритъм, като всеки желаещ да обменя криптирани данни трябва да има своя собствена уникална двойка от публичен и частен ключове:

  • публичен ключ – използва се за криптиране на данните и е общодостъпен за всеки, който иска да изпрати информация на притежателя му. Той не може да декриптира данните.
  • частен ключ – достъпен е само за притежателя му. Използва се за декриптиране на криптирани с публичния ключ данни.

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

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

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

Криптографиращи протоколи

[редактиране | редактиране на кода]

Криптографски атаки

[редактиране | редактиране на кода]

Опитите за дешифриране използват слабостите на системата. Има различни квалификации на атаките:

  • Глуха атака (търси се определена схема на повторение в ключа)
  • При корумпирани генератори на случайни числа – намалявайки възможните генерирани стойности (напр. в ранния SSL Нетскейп използвал стойности от текущата дата)
  • Слабости в криптиращите алгоритми:
    • повторение (прeхващане и повторно изпращане на прехванатата обмяна).
    • съхранение на паролите в нешифрован вид.
    • троянски коне / фалшифициране на входни портали.
    • отвличане на удостоверяваща сесия (напр. чрез IP измама или фишинг).
    • атака за отказ на услуга – блокиране на ресурсите.
  1. Kama Sutra, Sir Richard F. Burton, translator, Part I, Chapter III, 44th and 45th arts.
  2. Hakim, Joy. A History of Us: War, Peace and all that Jazz. New York, Oxford University Press, 1995. ISBN 0-19-509514-6.
  3. Whitfield Diffie and Martin Hellman, „New Directions in Cryptography“, IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976, pp: 644 – 654. (pdf)