If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Криптиране с публичен ключ

В интернет два компютъра често искат да обменят данни помежду си сигурно. Когато въвеждам паролата си на екрана за вход в Кан Академия, искам компютърът ми да изпрати тези данни сигурно към сървърите на Кан Академия. Не искам да се притеснявам за това, че нападател може да следи интернет трафика ми и да вижда паролата, която изпращам.
Илюстрация на нападател, който краде парола. Показан е лаптоп с отворен браузър и поле за въвеждане на парола. Стрелка сочи от лаптопа до сървър. Над стрелката има балонче, което съдържа текста ""Be3tP@ssw0rd3ver", а усмихнат нападател наблюдава текста.
Техниките за симетрично криптиране разчитат на това и изпращачът, и получателят да използват един и същи ключ за криптиране и декриптиране на данните. Как могат моят компютър и сървъра на Кан Академия да обменят ключа сигурно? Ако нападател може да види моята парола, то той ще може също да види и ключа за криптиране!
Илюстрация на нападател, който краде ключ за криптиране. Показан е лаптоп с браузър и поле за въвеждане на парола. Стрелка сочи от лаптопа към сървър. Над стрелката има балонче с текст "TOP_SECRETKEY" (СУПЕРСИГУРЕН_КЛЮЧ) и усмихнат нападател гледа текста.
Криптирането с публичен ключ идва да ни спаси! Това е техника за асиметрично криптиране, която използва различни ключове за криптиране и декриптиране, позволявайки на компютрите да си комуникират сигурно един с друг чрез интернет.
Нека преминем през процеса за криптиране с публичен ключ на високо ниво.

Стъпка 1: Генериране на ключ

Всеки човек (или неговият компютър) трябва да генерира двойка ключове, които го идентифицират: личен ключ и публичен ключ.
Можеш да генерираш двойка ключове по-долу, използвайки същия RSA алгоритъм, който се използва и от компютъра ти:
Забеляза ли, че отнема няколко секунди да се генерират ключовете? Това се дължи на математическите операции. Ключовете са генерирани като се умножат две много големи прости числа. Алгоритъмът постоянно генерира случайни големи числа и проверява дали са прости, докато най-накрая не открие две случайни големи прости числа. Цялото това проверяване за прости числа отнема време, а тези ключове са дълги едва 512 бита. В момента националната препоръка за дължина на ключ е 2048 или дори 3072 бита.

Стъпка 2: Обмяна на ключ

Изпращащият и получаващият компютър обменят публични ключове един с друг чрез надежден канал като TCP/IP. Личните ключове никога не се обменят.
Диаграма на обмяна на ключове с лаптоп и сървър. Екранът на лаптопа показва браузър с поле за въвеждане на парола. Стрелка сочи от сървъра към лаптопа и е с надпис "SERVER_PUBLICKEY" (СЪРВЪРПУБЛИЧЕН_КЛЮЧ). Под нея има друга стрелка, която сочи от лаптопа към сървъра и е с надпис "CLIENT_PUBLICKEY"(КЛИЕНТПУБЛИЧЕН_КЛЮЧ).

Стъпка 3: Криптиране

Изпращащият компютър криптира тайните данни, използвайки публичния ключ на получаващия компютър и математическа операция.
Силата на криптирането с публичен ключ е в тази математическа операция. Тя е "еднопосочна функция", което означава, че е много трудно за компютър да обърне операцията и да открие оригиналните данни. Дори публичният ключ не може да се използва, за да се декриптират данните.
Можеш да го пробваш долу с публичния ключ, който генерира по-горе:

Стъпка 4: Изпращане на криптирани данни

Изпращачът сега може сигурно да изпрати криптираните данни чрез интернет без да се безпокои за наблюдатели.
Диаграма за обмяна на ключове межу лаптоп и сървър. Екранът на лаптопа показва браузър с поле за въвеждане на парола. Стрелка сочи от сървъра към лаптопа и е с надпис със стринг с криптиран текст. Нападател гледа нещастно текста.

Стъпка 5: Декриптиране

Сега получателят може да декриптира съобщение, използвайки своя личен ключ. Това е единственият ключ, който може да се използва, за да се декриптира съобщението (в целия свят!).
Пробвай го долу с криптираното съобщение и личния ключ от по-нагоре:
Веднъж щом успешно декриптира съобщението, пробвай да го декриптираш с публичния ключ. Няма да стане. Единствено личният ключ може да го декриптира.

Как е възможно това?

Може да звучи твърде добре, за да е истина, че е възможно да се криптира нещо с един ключ, което може след това да бъде декриптирано само с друг ключ. За много дълго време математиците не са били сигурни дали това е възможно, но за щастие са открили начин през 70-те години на XX век.
Математиката на еднопосочната функция разчита на прости числа, сложността на разлагането на множители на големи прости числа и модулна аритметика. Ако искаш да задълбаеш повече в математиката, виж уроците по модерна криптография на Кан Академия.
За щастие, всички ние можем да използваме ползите от криптирането с публичен ключ, без да има нужда да разбираме сложната математика зад него. Всъщност вероятно всеки ден използваме криптиране с публичен ключ, тъй като използваме компютри и интернет. Само си представи, какъв би бил светът без него?

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Имаш ли въпроси по тази тема? С радост ще ти отговорим—просто задай въпроса си по-долу!

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.