Какво е асиметрично криптиране?

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

Заглавната разлика обаче описва ключовете за криптиране. Алгоритъмът за симетрично криптиране използва един споделен ключ за криптиране и декриптиране на данни. Алгоритъмът за асиметрично криптиране използва два свързани ключа, един за дешифриране и един за декриптиране.

Терминология

Алгоритмите за асиметрично криптиране разчитат на използването на два различни ключа. Един ключ може да се използва за криптиране на данни, а другият за декриптиране. Двата ключа за криптиране не са просто две стари стойности. Те са вътрешно свързани и трябва да бъдат генерирани от алгоритъм за генериране на ключове.

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

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

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

Свойства на алгоритмите за симетрично криптиране

Алгоритмите за асиметрично криптиране изискват използването на много по-големи ключове от алгоритмите за симетрично криптиране, когато осигуряват същото ниво на сигурност. Като цяло алгоритъмът за симетрично криптиране със 128-битов ключ за криптиране се счита за сигурен, въпреки че се предпочитат 256-битови ключове. В алгоритъм за асиметрично криптиране 2048-битовите ключове се считат за безопасни.

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

Бакшиш: Горните стойности се считат за сигурни за търговска употреба, но NSA изисква по-силни ключове за строго секретно криптиране. Необходими са RSA ключове от поне 3072 бита, докато са необходими 384-битови ключове за елиптична крива. Струва си да се отбележи, че 3072-битов RSA ключ е по-слаб от 384-битов ключ с елиптична крива.

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

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

Използвайте на практика

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

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

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

Заключение

Алгоритмите за асиметрично криптиране използват два различни ключа. Единият ключ се използва за криптиране, а другият за дешифриране. Ключовете са математически свързани и трябва да бъдат генерирани от алгоритъм за генериране на ключове; случайните стойности не работят. Обикновено ключът за шифроване се споделя публично, което позволява на всеки да шифрова съобщение, предназначено за собственика на двойката ключове.

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