Самое важное и интересное о шифровании

Серия статей, понятных даже неспециалистам

Часть 1: Что такое шифрование: основные понятия
Часть 2: Симметричное шифрование
Часть 3: Алгоритмы симметричного шифрования
Часть 4: Асимметричное шифрование
Часть 5: Алгоритм асимметричного шифрования RSA
Часть 6: Алгоритм асимметричного шифрования ECDSA
Часть 7: Достоинства и недостатки асимметричных алгоритмов и гибридное шифрование
Часть 8: Одно немаловажное “но”: квантовая уязвимость

Часть 4: Асимметричное шифрование

Из наших предыдущих статей вы можете узнать общую информацию о шифровании, о симметричном шифровании и его алгоритмах. Здесь же речь пойдет об ассиметричном шифровании.

В асимметричном шифровании используются два ключа: публичный и приватный, поэтому шифрование и называется асимметричным. Публичным ключом сообщение шифруется, а приватным ключом расшифровывается. Так, публичный и приватный ключи математически взаимосвязаны между собой. С помощью определенных математических функций на основе значения приватного ключа вычисляется (генерируется) публичный ключ. Публичный ключ на то и публичный, что его можно пересылать по незащищенным каналам связи, и никакого вреда в этом нет. По значению публичного ключа нельзя вычислить секретный (приватный) ключ, который никогда не покидает своего владельца.

Принцип работы асимметричного шифрования

Теперь представим, что Боб хочет послать Алисе сообщение. У Алисы есть секретный ключ, на основе которого она вычисляет (генерирует) публичный ключ и отправляет его Бобу. Ева прекрасно видит этот публичный ключ и даже сама может отнести его Бобу. Для Евы этот публичный ключ абсолютно бесполезен. Боб получает публичный ключ и шифрует им свое сообщение. Шифрование открытым ключом работает лишь в одном направлении, этим же открытым ключом расшифровать сообщение не получится. Алиса получает зашифрованное сообщение Боба и расшифровывает его своим секретным ключом.

asymmetric encryption

Для наглядности можно привести пример с почтовым ящиком. Боб сообщает Алисе адрес своего дома, на двери которого висит почтовый ящик. Алиса приходит к дому Боба, видит почтовый ящик и опускает в него письмо. Достать письмо обратно через щель в ящике невозможно. Боб приходит с работы, открывает почтовый ящик своим ключом и может прочитать письмо Алисы.

asymmetric encryption

В данном примере почтовый ящик — это публичный ключ. Адрес почтового ящика (дома, где живет Боб) всем известен. Ева видит этот ящик каждый день из окна напротив. Но секретный ключ — ключ от ящика — есть только у Боба. И только Боб может открывать ящик и читать письма.

Математическая база и потайной ход

Основой асимметричных алгоритмов шифрования являются так называемые односторонние функции. Вспомним немного математику. Функция — это соответствие между элементами двух множеств. Математически определение функции выглядит так: y = f(x). f — это все те действия, которые определяют, каким образом величина y (переменная) зависит от величины x (постоянная величина). Например, скорость движения автомобиля (f) определяет, каким образом пройденный путь (y) зависит от затраченного времени (х).
В асимметричной криптографии применяются односторонние функции с потайным ходом.

Необратимость функции заключается в следующем. Нам легко вычислить y для любых значений x. Но если для большинства значений y сложно за приемлемое время подобрать x таким образом, чтобы y = f(x), то функция будет односторонней.
Примером односторонней функции, которая используется в асимметричных алгоритмах шифрования, является умножение двух больших чисел: N = P*Q. Представьте, что вы перемножили P и Q длиной хотя бы в пять знаков на калькуляторе и получили результирующее число N. Сообщите это число N другу и попросите его найти те самые числа P и Q, которые вы перемножили. Будьте уверены, что ваш друг вряд ли справится с этой задачей даже за несколько лет. Процедура подбора множителей P и Q для произведения N называют разложением на множители, или факторизацией больших чисел.

Потайной ход — это такое значение y, с помощью которого мы легко вычислим x, если нам известно значение f(x). Потайной ход — это и есть секретный ключ в асимметричном шифровании, который никогда не покидает своего владельца и делает функцию обратимой.

Самое важное и интересное о шифровании

Серия статей, понятных даже неспециалистам

Часть 1: Что такое шифрование: основные понятия
Часть 2: Симметричное шифрование
Часть 3: Алгоритмы симметричного шифрования
Часть 4: Асимметричное шифрование
Часть 5: Алгоритм асимметричного шифрования RSA
Часть 6: Алгоритм асимметричного шифрования ECDSA
Часть 7: Достоинства и недостатки асимметричных алгоритмов и гибридное шифрование
Часть 8: Одно немаловажное “но”: квантовая уязвимость

Часть 4: Асимметричное шифрование

Из наших предыдущих статей вы можете узнать общую информацию о шифровании, о симметричном шифровании и его алгоритмах. Здесь же речь пойдет об ассиметричном шифровании.

В асимметричном шифровании используются два ключа: публичный и приватный, поэтому шифрование и называется асимметричным. Публичным ключом сообщение шифруется, а приватным ключом расшифровывается. Так, публичный и приватный ключи математически взаимосвязаны между собой. С помощью определенных математических функций на основе значения приватного ключа вычисляется (генерируется) публичный ключ. Публичный ключ на то и публичный, что его можно пересылать по незащищенным каналам связи, и никакого вреда в этом нет. По значению публичного ключа нельзя вычислить секретный (приватный) ключ, который никогда не покидает своего владельца.

Принцип работы асимметричного шифрования

Теперь представим, что Боб хочет послать Алисе сообщение. У Алисы есть секретный ключ, на основе которого она вычисляет (генерирует) публичный ключ и отправляет его Бобу. Ева прекрасно видит этот публичный ключ и даже сама может отнести его Бобу. Для Евы этот публичный ключ абсолютно бесполезен. Боб получает публичный ключ и шифрует им свое сообщение. Шифрование открытым ключом работает лишь в одном направлении, этим же открытым ключом расшифровать сообщение не получится. Алиса получает зашифрованное сообщение Боба и расшифровывает его своим секретным ключом.

asymmetric encryption

Для наглядности можно привести пример с почтовым ящиком. Боб сообщает Алисе адрес своего дома, на двери которого висит почтовый ящик. Алиса приходит к дому Боба, видит почтовый ящик и опускает в него письмо. Достать письмо обратно через щель в ящике невозможно. Боб приходит с работы, открывает почтовый ящик своим ключом и может прочитать письмо Алисы.

asymmetric encryption

В данном примере почтовый ящик — это публичный ключ. Адрес почтового ящика (дома, где живет Боб) всем известен. Ева видит этот ящик каждый день из окна напротив. Но секретный ключ — ключ от ящика — есть только у Боба. И только Боб может открывать ящик и читать письма.

Математическая база и потайной ход

Основой асимметричных алгоритмов шифрования являются так называемые односторонние функции. Вспомним немного математику. Функция — это соответствие между элементами двух множеств. Математически определение функции выглядит так: y = f(x). f — это все те действия, которые определяют, каким образом величина y (переменная) зависит от величины x (постоянная величина). Например, скорость движения автомобиля (f) определяет, каким образом пройденный путь (y) зависит от затраченного времени (х).
В асимметричной криптографии применяются односторонние функции с потайным ходом.

Необратимость функции заключается в следующем. Нам легко вычислить y для любых значений x. Но если для большинства значений y сложно за приемлемое время подобрать x таким образом, чтобы y = f(x), то функция будет односторонней.
Примером односторонней функции, которая используется в асимметричных алгоритмах шифрования, является умножение двух больших чисел: N = P*Q. Представьте, что вы перемножили P и Q длиной хотя бы в пять знаков на калькуляторе и получили результирующее число N. Сообщите это число N другу и попросите его найти те самые числа P и Q, которые вы перемножили. Будьте уверены, что ваш друг вряд ли справится с этой задачей даже за несколько лет. Процедура подбора множителей P и Q для произведения N называют разложением на множители, или факторизацией больших чисел.

Потайной ход — это такое значение y, с помощью которого мы легко вычислим x, если нам известно значение f(x). Потайной ход — это и есть секретный ключ в асимметричном шифровании, который никогда не покидает своего владельца и делает функцию обратимой.