Математика, которая охраняет деньги

Каким бывает шифрование и где оно применяется

Математика, которая охраняет деньги

Привет! На связи karpov.courses.

На наших программах есть уроки математики — на уровне, достаточном для работы джуном. Но кроме нужных для Data Science разделов с ней связано ещё много интересного: шифрование банков, криптовалюты, премии и награды за решение сложных задач.

Сегодня расскажем про науку о шифрах — криптографию — и где она встречается.

Что такое криптография и где мы с ней сталкиваемся

Слово «криптография» означает «тайное письмо»: специальный алгоритм превращает простой текст в зашифрованный — и прочесть его можно только с ключом-разгадкой.

Хорошее шифрование должно отвечать нескольким требованиям. Самое очевидное из них — шифр должен быть в состоянии защитить данные. Поэтому пароль «пароль» или «12345» серьёзного сопротивления при взломе не окажут. Не зря при регистрации на сайтах часто просят придумать надёжный пароль с символами, цифрами и буквами разных регистров.

Математика, которая охраняет деньги

А вот где ещё мы встречаем криптографию кроме интернета:

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

Шифр Цезаря и машина «Энигма»

Сейчас взломать многие алгоритмы и технологии криптографии не под силу даже самым мощным из существующих компьютеров. Но начиналось всё проще.

Один из первых шифров изобрёл римский полководец Цезарь, когда воевал с галлами. Это была довольно простая головоломка, которая каждую букву сдвигала в алфавите на определённый промежуток. То ли сработала новизна идеи, то ли помогли другие таланты Цезаря — галлов он в итоге победил.

Математика, которая охраняет деньги

Шифрование серьёзно усложнилось с изобретением шифровальных машин в 1900-х годах. Одной из самых знаменитых была «Энигма», взломанная Аланом Тьюрингом (Бенедиктом Камбербетчем — в экранизации).

Машина работала очень хитро: если зашифрованные буквы в шифре Цезаря всегда выглядели одинаково — скажем, «А» всегда трансформировалась в «Г», — то в шифре «Энигмы» в одном сообщении одна и та же буква могла превращаться в разные. А ещё каждый день настройки машины менялись. И как это взломать?

158 962 555 217 826 360 000 вариантов шифрования было в машине «Энигма»

Одной из первых использованных для раскрытия шифра уязвимостей стало то, что зашифрованная буква никогда не бывает собой: «А» в зашифрованном виде будет любой буквой, но только не «А». Ещё одной подсказкой стало постоянное использование слов из реального прогноза погоды.

Сегодня «Энигма» и другие старые шифры не используются для серьёзных криптографических задач — только для образовательных целей или как декорации в квестах и постановках. Например, на уроках программирования часто предлагают написать код трансформации текста шифром Цезаря.

Математика, которая охраняет деньги

RSA: шифрование для финансов на простых числах

В электронных платежах и онлайн-банкинге используется более сложная схема, чем в «Энигме».

В 1977 году математики Рональд Ривест, Ади Шамир и Леонард Адлеман разработали алгоритм шифрования на простых числах RSA (Rivest-Shamir-Adleman).

Простые числа делятся без остатка только на себя и ещё на 1. Например: 2, 3, 5, 7, 11, 13.

Работает это так: берут два больших простых числа A и B. По-настоящему больших — из сотни или даже тысячи цифр. Их перемножают, и получается ещё большее число C. Для работы нужно только произведение C, а для расшифровки — множители A и B.

Надёжность алгоритма в том, что для взлома надо разложить очень большое число на простые множители, а современные компьютеры с такой задачей пока не справляются. Точнее, справляются, но это потребует несколько сотен лет.

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

в реальности берут числа порядка 10 в степени 100-300
в реальности берут числа порядка 10 в степени 100-300

Шифрование RSA имеет несколько недостатков, но на нём основана половина сегодняшних технологий для электронных подписей и цифровых сертификатов.

Биткоин: венец криптографической эволюции

Первая криптовалюта появилась в 2009 году, и она была основана на тысячах криптографических исследований со всего мира.

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

Биткоин использует шифрование в нескольких местах. Про все мы рассказывать не будем, чтобы не усложнять, но вот два примера.

Все транзакции в сети биткоина защищены ассиметричным шифрованием. Это значит, что зашифровать данные могут все, а расшифровать — только владелец секретного ключа.

Все новые монеты в сети появляются из связанных друг с другом блоков — блокчейне. У каждого блока в блокчейне есть свой цифровой отпечаток-хеш. Хеш невозможно расшифровать, его можно только снять с электронных данных как слепок. Каждый новый блок использует хеш предыдущего.

Получается огромная сложная цепь связанных между собой блоков. Нельзя просто взять и внести изменения в одно место блокчейна — придётся переделывать их все. Поэтому просто скопировать монеты или создать новые невозможно.

Математика, которая охраняет деньги

А вы знаете, что до сих пор неизвестно, как появляются новые простые числа? Нет никакого закона, который позволял бы сказать: «На каждый новый миллион чисел мы получим столько-то простых». Когда в фильме «Игры разума» студент спрашивает Рассела Кроу про гипотезу Римана — это как раз про это.

Математика — интересная и сложная наука. Интересная больше, чем сложная. Если хотите прокачать знания, разбираться в крутых теоремах или просто подготовиться к работе с BigData, приходите к нам на бесплатный курс «Математика для Data Science c нуля».

Мы расскажем интересно:

3939
22 комментария
Комментарий удалён модератором
Комментарий удалён модератором

Это самый невзламываемый шифр!

Ответить

«Нельзя просто взять и внести изменения в одно место блокчейна — придётся переделывать их все» — можно сделать форк и разветвить сеть. Для этого не нужно менять предыдущие блоки. Так разделились биткоин и биткоин-кэш, эфир и эфир-классик.

Плюс при консенсусе участников можно менять и старые блоки, например, откатить сеть на несколько блоков назад из-за взломов, такое тоже было.

2
Ответить

Все верно)

Но речь не про договорные разветвления и правки, а именно про злонамеренный взлом без консенсуса всех участников

Ответить