- Какие алгоритмы шифрования наиболее безопасны? | Портал о системах видеонаблюдения и безопасности
- Различные типы алгоритмов шифрования
- ECC
- XChaCha20
- RC6 (предыдущие версии-RC4 и RC5)
- AES
- Triple DES
- Blowfish
- RSA
- Diffie-Hellman
- DSA
- El Gamal
- Какие типы алгоритмов шифрования наиболее безопасны?
- Невзламываемый шифр Вернама — Журнал «Код»: программирование без снобизма
- Как работают такие алгоритмы
- Шифр Вернама — это сложно
- Почему этот шифр невзламываемый
- Пример работы
- Минусы шифра Вернама
- Что дальше
- Криптография: история шифровального дела
- Тайнопись древних цивилизаций
- Фрагмент хирургического папируса, одного из наиболее важных медицинских текстов Древнего Египта
- Шифр Цезаря со сдвигом на 3: A заменяется на D, B заменяется на E и так далее. Z заменяется на C
- Тарабарщина, цифирь и другие шифры
- Тайнопись XVI века, в основе которой числовые значения церковнославянских букв
- Шифровальный диск Леона Альберти
- Эпоха шифровальных машин
- Шифровальный цилиндр Томаса Джефферсона
- Роторы «Энигмы» в собранном состоянии. wikimedia.org
- Криптография для всех
- Стойкие шифры • Библиотека
- Совершенный шифр
- Немного истории и литературы
- Шифры с открытым ключом
- А у вас получится?
Какие алгоритмы шифрования наиболее безопасны? | Портал о системах видеонаблюдения и безопасности
Шифрование превратилось в модное словечко. Мы все время слышим, как шифрование может защитить нас от прослушивания и слежки. Многие пользователи интернета используют зашифрованные приложения, электронную почту, мессенджеры или VPN для защиты своего соединения.
Между тем, правительства имеют свои представления о зашифрованных услугах – они хотят получить полный доступ к различным учетным записям в чрезвычайных ситуациях. И именно поэтому они требуют предоставлять бэкдоры к зашифрованным услугам через законодательство. Естественно, эти новые законы привлекают большое внимание СМИ, ставя шифрование в центр внимания.
В интернете повсюду мы можем наткнуться на множество случайных букв и цифр, указывающих на шифрование – ECC, XChacha20, AES-256, RC6, 2DES, QUAD или DSA. Но если вы обычный пользователь, заботящийся о своей конфиденциальности и безопасности, все эти аббревиатуры будет трудно переварить в одиночку. Будем надеяться, что некоторые пояснения помогут вам лучше их понять.
Различные типы алгоритмов шифрования
Существует достаточно много алгоритмов шифрования. Поэтому стоит рассмотреть наиболее распространенные из них.
ECC
Это алгоритм асимметричного шифрования нового поколения. Он также используется для генерации ключей шифрования и создания безопасных соединений для безопасной передачи данных. ECC намного быстрее и безопаснее, чем RSA или DSA.
Он использует более короткие ключи, чем RSA, которые так же сложно взломать. Например, 512-битный ECC ключ так же безопасен, как и 15360-битный RSA ключ, но поскольку он намного короче, то потребляет значительно меньше вычислительной мощности для его генерации.
ECC используется не так часто, как RSA, поскольку он относительно новый, к тому же RSA легче реализовать.
XChaCha20
Это алгоритм симметричного шифрования, который был разработан Даниэлем Бернштейном. Как и ECC, он относительно новый, но уже зарекомендовал себя как очень безопасный, надежный и быстрый алгоритм.
ChaCha является потоковым шифром, что означает, что он шифрует данные бит за бит по мере их поступления. Благодаря этому ChaCha намного быстрее любого блочного шифра и не нуждается в аппаратном обеспечении или большой вычислительной мощности.
Это также является причиной того, что ChaCha не подвержен временным атакам, в отличие от некоторых блочных шифров.
RC6 (предыдущие версии-RC4 и RC5)
Это алгоритм симметричного (закрытый ключ) шифрования. Получатель зашифрованных данных может получить доступ к ним только с помощью закрытого ключа, совместно используемого отправителем.
RC6 не предназначен для общего пользования и имеет ограничения по объему данных, которые могут быть зашифрованы.
Нет никаких известных атак, которые бы ослабили RC6 до такой степени, чтобы взлом был реально осуществим.
AES
Это еще один симметричный алгоритм, который шифрует данные в одном блоке фиксированного размера за один раз. AES может иметь ключи различной длины, например, AES-128, AES-192 или AES-256. Несмотря на то, что 128-битный алгоритм эффективен и безопасен, службы шифрования чаще используют AES-192 для обеспечения максимальной безопасности.
Triple DES
Это более новая версия стандарта шифрования данных, которая широко используется финансовыми службами. Этот алгоритм использует 56-битный ключ, но шифрует данные три раза, превращая их в 168-битный ключ. Однако некоторые эксперты утверждают, что это больше похоже на 112-битный ключ.
Процесс тройного шифрования делает его намного медленнее по сравнению с другими алгоритмами. Также, из-за того, что в нем используются более короткие блоки данных, это может быть проще для расшифровки и утечки данных.
По мере появления более современных и быстрых технологий, технология DES постепенно сворачивается.
Blowfish
Это метод шифрования закрытого ключа, разработанный Брюсом Шнайером. Он был введен в 1993 году как быстрая, безлицензионная альтернатива другим популярным в то время алгоритмам шифрования. Многие криптографы все еще изучают этот алгоритм и пытаются подтвердить, что он защищен от взлома.
RSA
В качестве алгоритма асимметричного шифрования (открытого ключа) он использует два ключа: открытый и закрытый. Открытый ключ применяется для шифрования данных, а закрытый – для их расшифровки. RSA широко распространен, но не для шифрования реальных данных, проходящих через интернет.
Вместо этого, он используется для шифрования ключей другого алгоритма, особенно когда вам нужно поделиться своим личным ключом. Сообщается, что 768-битный RSA ключ был взломан, но в настоящее время большинство RSA ключей – 2048-битный и 4096-битный.
Это делает его более безопасным для шифрования, но работает он очень медленно.
Diffie-Hellman
Это один из первых протоколов для безопасного обмена ключами по публичному каналу. Как и RSA, Diffie-Hellman полагается на крайнюю сложность больших простых чисел.
Обычно он используется для систем SSL, SSH, PGP и других систем PKI (инфраструктура открытых ключей).
Поэтому каждый раз, когда вы заходите на веб-сайт со значком замка рядом с его URL-адресом, это означает, что ваше устройство использует Diffie-Hellman.
DSA
Это еще один алгоритм открытого ключа. NIST предложил его для безопасной электронной подписи еще в 1991 году.
Как и все методы асимметричного шифрования, этот алгоритм имеет частную и публичную части в своем процессе кодирования.
Лицо, которое подписывает, является частным, а лицо, которое проверяет подпись, является публичным. DSA в настоящее время используется как в неклассифицированных, так и в засекреченных сообщениях.
El Gamal
Это алгоритм шифрования с открытым ключом, созданный в 1984 г. Тахером Эль-Гамалем. Это упрощенный алгоритм Diffie-Hellman, позволяющий шифровать в одном направлении без необходимости активного участия второй стороны.
Ключевым недостатком этого алгоритма является то, что шифрованный текст в два раза длиннее открытого текста. А наибольшим преимуществом является то, что один и тот же текст создает другой зашифрованный текст каждый раз, когда он шифруется.
Неоднократно было доказано, что это очень безопасный метод шифрования.
Какие типы алгоритмов шифрования наиболее безопасны?
На этот вопрос нет простого ответа. Большинство экспертов по кибербезопасности скажут вам, что многое зависит от того, где и как используется каждый алгоритм. Каждый метод шифрования имеет свои минусы и плюсы. Поэтому во многих случаях асимметричное шифрование необходимо использовать в сочетании с симметричным.
В настоящее время AES является самым популярным симметричным алгоритмом, используемым во многих службах шифрования. Он также признан стандартом во многих странах. Однако все больше технических гигантов начинают использовать более новые алгоритмы, такие как ChaCha.
Но симметричное шифрование имеет свои недостатки – закрытый ключ должен быть отправлен получателю. Именно здесь в игру вступают асимметричные алгоритмы. Поэтому, на сегодняшний день будет лучше использовать ECC в сочетании с ChaCha для обеспечения пуленепробиваемой безопасности и наслаждаться душевным спокойствием.
Источник: https://bezopasnik.info/%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B0%D0%B8%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5/
Невзламываемый шифр Вернама — Журнал «Код»: программирование без снобизма
Невзламываемый шифр Вернама
Продолжается цикл статей о шифровании и криптографии. В предыдущих сериях:
Сегодня разберём невзламываемый симметричный шифр.
Вся криптография основана на том, что для взлома шифра злоумышленнику потребуются десятки или сотни лет даже при доступе к большим вычислительным ресурсам. Но в симметричном шифровании есть алгоритмы, которые при правильном использовании вообще невозможно взломать. Один из таких алгоритмов — шифр Вернама.
Как работают такие алгоритмы
Общие правила для абсолютно стойких шифров в симметричном шифровании такие:
- Одно шифрование — один уникальный ключ. Второе сообщение шифровать этим же ключом уже нельзя.
- Ключ состоит из случайных битов, и каждый бит не зависит от другого. Это значит, что нельзя использовать в качестве ключа, например, отрывок из книги, потому что это резко снижает устойчивость шифра ко взлому.
- Длина ключа должна быть равна длине сообщения или ключ должен быть чуть длиннее. Если ключ короче сообщения, которое нужно зашифровать, то абсолютной стойкости не получится.
Если в алгоритме соблюдаются все три правила, то такой шифр взломать нельзя даже теоретически.
В 1917 году телеграфист Гильберт Вернам изобрёл шифр, который основан на побитовом исключающем ИЛИ. Если коротко и просто, то на каждую букву вашего сообщения накладывается другая маскирующая буква, которая делает исходную букву нечитаемой.
Шифр Вернама — это сложно
Теперь попробуем объяснить подробнее.
1. Сообщение хранится в виде битов данных. Допустим, мы шифруем текст. Компьютер не умеет работать с текстом как таковым, он этот текст хранит как набор числовых кодов (проще говоря, у компьютера все буквы пронумерованы и он помнит только эти номера).
Числа, в свою очередь, компьютер хранит в виде двоичного кода, то есть битов данных. Это пока что не относится к шифрованию, это просто то, как хранится любая текстовая информация в компьютере.
Буква | Код в ASCII | Биты данных |
K | 75 | 01001011 |
O | 79 | 01001111 |
D | 68 | 01000100 |
Если мы напишем KOD в кодировке ASCII, то для компьютера это будет последовательность из трёх чисел, а каждое число — это набор битов:
01001011 01001111 01000100
2. Берём случайные биты в качестве ключа шифрования. На входе у нас три числа по 8 бит. Чтобы их зашифровать, нам нужны 24 случайных бита. Возьмём их с потолка, они ничего не значат:
10101101 01111010 10101011
3. Накладываем коды друг на друга и применяем алгоритм шифрования. Шифр Вернама построен на принципе «исключающего ИЛИ», он же XOR. Он смотрит на каждую пару битов и пытается понять, они одинаковые или разные. Если биты одинаковые, результат проверки будет 0, если разные — 1.
Можно проверить себя так: XOR задаёт вопрос «Эти биты разные»? Если да — то 1, если нет — то 0.
Буква K | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
Ключ | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
XOR (Они разные?) | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
Если мы таким образом закодируем три буквы, мы получим три новых набора битов:
KOD (сообщение) | 01001011 | 01001111 | 01000100 |
Ключ | 10101101 | 01111010 | 10101011 |
Результат шифрования с помощью XOR | 11100110 | 00110101 | 11101111 |
Получается, что на входе у нас было 24 бита данных и на выходе 24 бита данных. Но эти данные теперь совсем другие. Если перевести эти числа обратно в текст, мы получим:
Если у нас есть закодированное сообщение и ключ от него, то раскодировать его не составит труда. Мы просто пишем алгоритм, который применяет операцию XOR как бы в обратном порядке к каждому биту сообщения. Например:
- Если в ключе шифрования в каком-то бите стоит 1, то мы берём этот же бит в зашифрованном сообщении и меняем его. Если был 1, то меняем на 0. Если был 0, то меняем на 1.
- Если в ключе шифрования в каком-то бите стоит 0, то этот же бит в зашифрованном сообщении мы не меняем.
- Проходим так по каждому биту сообщения и получаем исходный текст.
Компьютер может совершать миллиарды таких операций в секунду. Главное — иметь на руках ключ для расшифровки.
Почему этот шифр невзламываемый
Для начала договоримся, что под взломом мы понимаем прочтение этого сообщения без ключа. Если бы у нас был ключ, мы бы прочитали это сообщение почти сразу, и это уже не взлом.
Теперь посмотрим, почему без ключа этот шифр невозможно взломать.
- Каждый бит нашего исходного сообщения шифруется соответствующим битом, который берётся из ключа шифрования.
- Ключ шифрования — это случайные биты, такой «цифровой шум». Он не имеет смысла и в нём нет никакой логики. Каждый следующий бит может быть каким угодно.
- Шифрование происходит на самом низком уровне — на уровне битов. Мы даже не знаем, что перед нами: буквы, цифры, числа, картинки или аудио. Просто какой-то набор битов, которые выглядят как цифровой шум.
Единственный способ расшифровать целое сообщение — это получить целый ключ. Если мы получим лишь часть ключа, мы не сможем угадать или восстановить недостающую часть. Сколько ключа у нас есть — столько битов сообщения мы и расшифруем. Нет ключа — нет расшифровки.
Пример работы
Если мы зашифруем так фразу «Привет, это журнал Код!», то можем получить что-то такое:
Штука в том, что одна и та же буква в шифровке не означает одинаковые буквы в исходном сообщении, потому что биты шифрования выбраны случайным образом. Поэтому при попытке расшифровки злоумышленник получит такие варианты:
Срочно подпишись на код
Верни деньги, а то вилы
мама, я сдал зачёт, ура
Ваш зам предатель и вор
Ваш зам ни при чём, вот
Также он может получить любые другие сочетания букв, цифр и пробелов в рамках тех 23 символов, которые у нас были в исходном сообщении. Может быть, это не текст вовсе, а набор цифр.
Может быть, это текст на каком-то другом языке. Может быть, это не текст вовсе, а очень маленькая картинка.
Все эти варианты можно получить из нашей зашифрованной строки, потому что злоумышленник не знает ключ.
Минусы шифра Вернама
Если бы у этого шифра не было минусов, все бы пользовались только им, но сейчас этот шифр используется редко. Всё дело в том, что им очень неудобно пользоваться, чтобы выполнить все условия.
Чтобы этот шифр нельзя было взломать, нужно, чтобы секретный ключ был у обеих сторон и при этом его нельзя было перехватить. Но если так можно передать секретный ключ, то вместо него можно передать и само сообщение.
Даже если удастся заранее передать набор ключей каждой стороне для будущих шифровок, их нужно держать в полной физической безопасности, чтобы нельзя было их украсть, подсмотреть, потерять или перепутать.
Именно из-за таких требований к безопасности ключа этот шифр сейчас используется очень редко.
Что дальше
Поиграем в шпионов и напишем свой алгоритм шифра Вернама на JavaScript. Заодно и посмотрим, как работает XOR.
Миша Полянин
Редактор:
Максим Ильяхов
Корректор:
Ира Михеева
Иллюстратор:
Даня Берковский
Вёрстка:
Маша Дронова
Доставка:
Олег Вешкурцев
Источник: https://thecode.media/vernam/
Криптография: история шифровального дела
Совместно с Научно-производственной компанией «Криптонит» концерн «Автоматика» Госкорпорации Ростех принимает участие в создании первого в России Музея криптографии, который откроет свои двери для посетителей уже в следующем году.
Как отмечают создатели, основная задача музея – пробудить интерес посетителей к науке и современным технологиям, рассказывая о криптографии и смежных научно-технических областях. Для этого «Автоматика» обладает всеми данными. Концерн специализируется на вопросах криптографии с 1940-х годов.
Все это время здесь трудились лучшие криптографы и шифровальщики страны.
Но криптография насчитывает не одно тысячелетие и нашла свое уверенное место в современных реалиях – сегодня без шифрования невозможно представить банковские операции, мессенджеры и приложения, мобильную связь.
О прошлом и будущем шифровального дела – в нашем материале.
Тайнопись древних цивилизаций
За наукообразным словом «криптография» (с древнегреческого буквально − «тайнопись») скрывается древнее желание человека спрятать важную информацию от посторонних глаз.
Можно сказать, что сама письменность в самом начале уже была криптографической системой, так как принадлежала узкому кругу людей, и с помощью нее они могли обмениваться знаниями, недоступными неграмотным. С распространением письма возникла потребность в более сложных системах шифрования.
Со времен древних цивилизаций криптография верно служила военным, чиновникам, купцам и хранителям религиозных знаний.
Самым древним свидетельством применения шифра (около 4000 до н.э.) ученые считают древнеегипетский папирус с перечислением монументов времен фараона Аменемхета II. Безымянный автор видоизменил известные иероглифы, но, скорее всего, не для сокрытия информации, а для более сильного воздействия на читателя.
Фрагмент хирургического папируса, одного из наиболее важных медицинских текстов Древнего Египта
Еще один известный шифр – древнесемитский атбаш, приблизительно 600 г. до н.э. Здесь информацию запутывали самым простым способом − с помощью подмены букв алфавита. Криптограммы на атбаше встречаются в Библии.
А в Древней Спарте пользовались скиталой – шифром из цилиндра и обвивающей его полоски пергамента. Текст писали в строку на пергаменте. После разматывания ленты текст превращался в шифр, прочитать который было возможно, только имея цилиндр такого же диаметра. Можно сказать, что спартанская скитала стала одним из первых криптографических устройств.
В IV столетии до н.э. автор военных трактатов Эней Тактик придумал шифровальный диск, названный впоследствии его именем. Для записи сообщения в отверстия диска с подписанными рядом с ними буквами последовательно продевалась нить.
Чтобы прочитать текст, нужно было всего лишь вытягивать нить в обратной последовательности. Это и составляло основной минус устройства – при наличии времени шифр мог быть разгадан любым грамотным человеком.
Зато, чтобы быстро «стереть» информацию с диска Энея, нужно было всего лишь вытянуть нить или разбить устройство.
Шифр Цезаря со сдвигом на 3: A заменяется на D, B заменяется на E и так далее. Z заменяется на C
Одним из первых документально зафиксированных шифров является шифр Цезаря (около 100 г. до н.э.). Его принцип был очень прост: каждая буква исходного текста заменялась на другую, отстоящую от нее по алфавиту на определенное число позиций. Зная это число, можно был разгадать шифр и узнать, какие тайны Цезарь передавал своим генералам.
Шифрованием пользовались многие древние народы, но особенного успеха в криптографии уже в нашу эру достигли арабские ученые.
Высокий уровень развития математики и лингвистики позволил арабам не только создавать свои шифры, но и заниматься расшифровкой чужих.
Это привело к появлению первых научных работ по криптоанализу – дешифровке сообщений без знания ключа. Эпоха так называемой наивной криптографии, когда шифры были больше похожи на загадки, подошла к концу.
Тарабарщина, цифирь и другие шифры
Работы арабских ученых способствовали появлению полиалфавитных шифров, более стойких к расшифровке, в которых использовались сразу несколько алфавитов.
Однако люди Средневековья продолжали пользоваться простыми шифрами, основанными на замене букв другими буквами или цифрами, неправильном написании букв и т.д.
В Средние века в Европе считалось, что криптография была тесно связана с магией и каббалой.
Интересно, что в Древней Руси тоже были свои способы тайнописи, например литорея, которая делилась на простую и мудрую. В мудрой версии шифра некоторые буквы заменялись точками, палками или кругами. В простой литорее, которая еще называлась тарабарской грамотой, все согласные буквы кириллицы располагались в два ряда. Зашифровывали письмо, заменяя буквы одного ряда буквами другого.
Еще одним известным шифром Древней Руси была цифирь, когда буквы, слоги и слова заменялись цифрами. Иногда для усложнения в шифр добавлялись математические действия, и было непросто разгадать подобную загадку: «Десятерица сугубая и пятерица четверицею, единица четверицею сугубо и десятерица дващи».
Тайнопись XVI века, в основе которой числовые значения церковнославянских букв
В эпоху Возрождения криптография переживает подъем. Начинается период формальной криптографии, связанный с появлением формализованных, более надежных шифров. Над некоторыми загадками ученых Ренессанса криптографы последующих лет бились столетиями.
Около 1466 года итальянский ученый Леон Альберти изобретает шифровальный диск, состоящий из двух частей: внешней и внутренней. На неподвижном внешнем диске был написан алфавит и цифры. Внутренний подвижный диск также содержал буквы и цифры в другом порядке и являлся ключом к шифру.
Для шифрования нужно было найти нужную букву текста на внешнем диске и заменить ее на букву на внутреннем, стоящую под ней. После этого внутренний диск сдвигался, и новая буква зашифровывалась уже с новой позиции. Таким образом, шифр Альберти стал одним из первых шифров многоалфавитной замены, основанных на принципе комбинаторики.
Кроме того, Леон Альберти написал одну из первых научных работ по криптографии − «Трактат о шифрах».
Шифровальный диск Леона Альберти
Здесь стоит упомянуть такое явление, как стеганография, которому в работе Альберти также было уделено внимание. Если с помощью шифра пытаются утаить смысл информации, то стеганография позволяет скрыть сам факт передачи или хранения данных.
То есть текст, спрятанный с помощью этого метода, вы примите за картинку, кулинарный рецепт, список покупок или, например, кроссворд. Или вообще не увидите его, если он будет написан молоком, лимонным соком или с помощью особых чернил.
Часто методы стеганографии и криптографии объединялись в одном послании.
Прорывом в криптографии стала книга «Полиграфия» аббата Иоганеса Тритемия 1518 года, рассказывающая в том числе о шифрах с полиалфавитной заменой.
Самым известным шифровальщиком XVI века считается дипломат и алхимик из Франции Блез де Виженер, придумавший абсолютно стойкий шифр, в котором использовалось 26 алфавитов, а порядок использования шифра определялся знанием пароля.
Можно сказать, что шифр Виженера представлял собой комбинацию нескольких уже упоминавшихся шифров Цезаря.
Эпоха шифровальных машин
Промышленная революция не обошла вниманием и криптографию. Около 1790 года один из отцов – основателей США Томас Джефферсон создал дисковый шифр, прозванный позже цилиндром Джефферсона. Этот прибор, основанный на роторной системе, позволил автоматизировать процесс шифрования и стал первым криптоустройством Нового времени.
Шифровальный цилиндр Томаса Джефферсона
Большое влияние на шифровальное дело оказало изобретение телеграфа. Прежние шифры вмиг перестали работать, при этом потребность в качественном шифровании только возрастала в связи с чередой крупных военных конфликтов.
В XIX-XX веках основные импульсы для развития криптографии давала именно военная сфера. С 1854 года британские военные применяют шифр Плейфера, в основе которого – шифрование биграмм, или пар символов.
Этот шифр использовался до начала Второй мировой войны.
Во Второй мировой войне противники уже использовали мобильные электромеханические шифраторы, шифры которых считались нераскрываемыми. Устройства были роторными или на цевочных дисках. К первым относилась знаменитая машина «Энигма», которой пользовались нацисты, ко вторым – американская машина M-209.
Принцип работы «Энигмы» заключался в следующем: при каждом нажатии на клавишу с буквой алфавита в движение приходили один или несколько роторов. Буква изменялась несколько раз по принципу шифра Цезаря, и в окошке выдавался результат. Шифры «Энигмы» считались самыми стойкими для взлома, так как количество ее комбинаций достигало 15 квадриллионов.
Однако код «Энигмы» все же был расшифрован, сперва польскими криптографами в 1932 году, а затем английским ученым Аланом Тьюрингом, создавшим машину для расшифровки сообщений «Энигмы» под названием «Бомба». Комплекс из 210 таких машин позволял англичанам расшифровывать до 3 тыс. военных сообщений нацистов в сутки и внес большой вклад в победу союзников.
Роторы «Энигмы» в собранном состоянии. wikimedia.org
О советских шифровальных машинах известно мало, так как до последнего времени информация о них была засекречена. Например, до 1990-х годов в СССР и союзных странах использовалась роторная шифровальная машина «Фиалка». В отличие от «Энигмы» и других устройств, в ней использовались 10 роторов, а информация выводилась на бумажную ленту.
Криптография для всех
В 1949 году Клод Шеннон пишет работу «Теория связи в секретных системах», и криптография окончательно переходит в сферу математики.
К концу 1960-х роторные шифровальные системы заменяются более совершенными блочными, которые предполагали обязательное применение цифровых электронных устройств.
В 1967 году ученый Дэвид Кан издал популярную книгу «Взломщики кодов», которая вызвала большой интерес к криптографии.
С распространением компьютеров криптография выходит на новый уровень. Мощности новых устройств позволяют создавать на порядки более сложные шифры. Шифр или код становится языком общения между компьютерами, а криптография становится полноценной гражданской отраслью. В 1978 году разрабатывается стандарт шифрования DES, который стал основой для многих современных криптографических алгоритмов.
Сфера использования криптографии расширяется, при этом власти различных стран пытаются удержать контроль над использованием шифров. Разработки криптографов засекречиваются, от производителей шифровальных машин требуют оставлять в продуктах «черные ходы» для доступа спецслужб.
Параллельно независимые криптоаналитики разрабатывают способы шифрования, которыми могли бы пользоваться все желающие – так называемую открытую криптографию. Особенно актуально это стало с развитием интернета, где вопрос конфиденциальности информации встал очень остро.
Первой криптосистемой с открытым ключом считается созданный в 1977 году алгоритм RSA, название которого является акронимом имен создателей – Риверста, Шамира и Адельмана.
А в 1991 году американский программист Филипп Циммерман разрабатывает популярнейший пакет PGP с открытым исходным кодом для шифрования электронной почты.
Распространение доступного интернета по всему миру невозможно представить без криптографии. С появлением мессенджеров, социальных сетей, онлайн-магазинов и сайтов государственных услуг передача персональной информации в сети происходит без остановки и в огромных количествах.
Сегодня мы сталкиваемся с криптографией ежедневно, когда вводим пароль от почтового сервиса, узнаем статус покупки онлайн или делаем денежный перевод через приложение банка. Криптография прошла гигантский путь от простых шифров древности к сложнейшим криптосистемам.
Будущее этой науки творится на наших глазах – очередная революция в шифровании произойдет с появлением квантовых суперкомпьютеров, разработка которых уже ведется.
Источник: https://rostec.ru/news/kriptografiya-istoriya-shifrovalnogo-dela/
Стойкие шифры • Библиотека
Обычные шифры из детективных романов часто устроены так: каждая буква сообщения заменяется каким-нибудь определённым значком или другой буквой. Подобные шифры очень ненадёжны, и вот почему.
Буквы в текстах на русском языке (да и на любом языке вообще) встречаются неравномерно. Например, буква «О» в русских текстах встречается чаще всех других букв, а буква «Ъ» — реже всего.
У каждой буквы есть своя примерная частота появления в тексте (смотри таблицу на поле справа).
Сочетания букв тоже встречаются неравномерно (например, «ьь» вообще не встречается). Конечно, все эти частоты зависят от конкретного текста — скажем, в биологической статье о жужелицах буква «ж» явно будет встречаться чаще, чем обычно. Но приведённая таблица вполне годится как ориентир.
Так вот, описанный способ шифровки не изменяет частот — просто теперь с аналогичной частотой будет появляться не сама буква, а заменяющий её значок. Высчитав частоту появления каждого значка в шифровке и сравнив полученные данные с таблицей частот, мы можем сделать предположения, какой букве какой значок соответствует.
Далее пробуем заменять значки один за одним на буквы, проверяя свои догадки, корректируя их и делая новые, и постепенно расшифровываем текст. Если он не слишком короткий, мы с большой вероятностью его полностью расшифруем (хотя это может оказаться не совсем простым делом). Кстати, намного чаще любой буквы встречается пробел, разделяющий слова.
Поэтому если пробел используется в шифровке и тоже заменён на какой-то значок, мы разгадаем его в первую очередь.
Совершенный шифр
Опишем теперь шифр, который принципиально не поддается расшифровке без знания ключа.
Сопоставим каждой букве русского алфавита свою последовательность из 0 и 1 длины 5 (пятизначный двоичный код), например: А — 00000, Б — 00001, В — 00010 и так далее (или в каком-то другом порядке).
Если буквы Е и Ё кодировать одинаково, то последовательностей как раз хватит (их 32, а в алфавите 33 буквы).
Заменим в тексте каждую букву на её двоичный код, получим последовательность из 0 и 1 (двоичный текст). Это пока ещё не шифровка — мы бы легко разгадали, какая буква на какую последовательность заменена (тем же методом, что и в случае замены букв на значки).
Чтобы зашифровать полученный двоичный текст, нам потребуется ещё ключ — случайная последовательность из 0 и 1 такой же длины. Этот ключ должен быть и у отправителя шифрованного сообщения, и у адресата.
Для зашифровки просто складываем две последовательности нулей и единиц — двоичный текст сообщения и ключ: первую цифру с первой, вторую со второй, и так далее. Но складываем по особым правилам:
0 + 0 = 0, 1 + 0 = 1, 0 + 1 = 1, 1 + 1 = 0
(в математике это называется сложением по модулю 2).
Полученная последовательность и будет зашифрованным сообщением. Чтобы расшифровать её, надо просто… снова прибавить к ней ключ! Тогда мы как бы прибавим к исходной последовательности ключ два раза. А по нашим правилам, прибавляя две одинаковые цифры мы ничего не меняем, то есть мы вернёмся к исходному двоичному тексту. Схематически процесс шифрования и дешифрования можно описать так:
текст + ключ = шифровка;
шифровка + ключ = текст + ключ + ключ = текст.
Ясно, что расшифровать сообщение, не зная ключа, невозможно. Нам как бы дана сумма двух чисел, и нельзя восстановить одно из слагаемых, ничего не зная про другое. Имея на руках лишь шифровку, мы знаем только, что исходный текст может быть абсолютно любым текстом соответствующей длины. Ведь по любому такому тексту можно изготовить ключ, который приведёт ровно к той же самой шифровке!
Недостаток описанного способа в том, что каждый текст требует нового ключа такой же длины — если повторять ключи, появляется возможность расшифровки. Например, мы могли бы попробовать вместо длинного ключа использовать ключ всего из пяти символов, скажем 11010. Разбиваем двоичный текст на пятёрки цифр и прибавляем к каждой пятёрке 11010.
Фактически, мы просто заменяем каждую пятёрку цифр на какую-то другую фиксированную пятёрку. В этом случае расшифровать исходный текст так же легко, как если бы мы просто заменили его двоичным кодом, не прибавляя никакого ключа.
Использовать длинные ключи, но всё же существенно более короткие, чем текст, тоже опасно — есть метод определения длины ключа, а после того как длина ключа установлена, можно применить частотный анализ.
Поэтому надо заготовить ключ огромной длины заранее и лишь указывать, например, в начале шифровки, какое место ключа используется. При этом очень важно, чтобы ключ был случайной последовательностью из 0 и 1.
Например, последовательности 11111111111111111 и 010101010101010 не случайные. Кстати, придумать случайную последовательность не так-то просто.
Трудно даже (но возможно) дать чёткое определение, какие последовательности могут считаться случайными.
Немного истории и литературы
Подобный шифр использовал Макс Кристиансен-Клаузен, шифровальщик выдающегося советского разведчика Рихарда Зорге.
Наиболее часто употребляемые буквы английского алфавита s, i, o, e, r, a, t, n заменялись цифрами от 0 до 7, а остальные буквы — числами от 80 до 99 (чтобы не возникало путаницы, когда числа записывались подряд).
Ключом служили старые выпуски «Статистического ежегодника Германского рейха» с множеством числовых данных. Ключ записывали под текстом и прибавляли, причём если сумма двух цифр превышала 10, то записывалась только её последняя цифра.
Например, вместо 7 + 5 писали 2, отбрасывая десяток (в математике это называется сложением по модулю 10). Восстанавливали исходное сообщение, «вычитая» ключ из шифровки. Когда выходило отрицательное число, как, скажем, при вычитании 5 из 2, было ясно, что надо вычитать из числа на 10 больше, то есть из 12 — вот и получали 7.
Японские тайные службы перехватили много радиограмм Зорге, но ни одной не сумели расшифровать. Более полный рассказ об этом читайте в замечательной книге Юлиуса Мадера «Репортаж о докторе Зорге».
А герой приключенческих романов Юлиана Семёнова «Семнадцать мгновений весны» и «Приказано выжить» разведчик Штирлиц, больше известный нам по знамениту кинофильму, использовал в качестве ключа художественную книгу Монтеня. При этом осмысленный текст сообщения«складывался» с осмысленным же (и значит, не случайным!) текстом ключа.
Когда германским контрразведчикам стало известно предполагаемое содержание одной из шифровок, в частности — некоторые слова, которые там могли встречаться, — они попробовали их подставить в разные места шифровки и посмотреть, какой получается ключ. Попав в нужное место, они открывали кусочек ключа, в котором угадывались части осмысленных слов.
Восстанавливая эти слова, они раскрывали и новый кусочек шифровки, и так постепенно расшифровали её.
Шифры с открытым ключом
Начиная с 1977 года, стали появляться новые шифры, основанные на глубоких математических идеях, высказанных американскими математиками Диффи и Хеллманом за два года до этого.
Представьте себе, что два бизнесмена хотят переписываться друг с другом, надёжно шифруя сообщения, но забыли договориться о ключе. Они находятся в разных странах, всё их общение может прослушиваться конкурентами.
Как тут быть? Оказывается, выходы есть. Опишем один из них, но без подробностей, только сам принцип.
Придуман способ шифровки, для которого надо знать лишь произведение pq двух каких-то простых чисел p и q, а сами числа p и q знать не нужно. А вот для расшифровки сообщения обязательно иметь в распоряжении и число p, и число q. «Ну и что тут такого?», — спросите вы. А вот что.
Дело в том, что эти простые числа можно взять очень большими. И тут мы сталкиваемся с таким явлением: современные компьютерные мощности огромны, но всё же ограничены. Скажем, компьютер может за разумное время разложить на простые множители 200-значное число, но раскладывание 300-значных чисел ему уже не под силу (любому из известных алгоритмов потребуются многие годы).
Всегда есть какая-то подобная граница. А выяснить про число, простое оно или нет, компьютеры могут очень быстро для гораздо более длинных чисел. Так вот, первый из компаньонов может с помощью компьютера найти какие-нибудь два, скажем, 400-значных простых числа p и q, перемножить их и открыто переслать результат второму (а сами числа p и q хранить в тайне).
Получив произведение pq, тот зашифрует своё сообщение и отправит обратно первому. И первый его легко расшифрует — он-то знает оба числа p и q.
А вот всяким там подслушивателям для расшифровки придётся сначала разложить на множители произведение pq, в котором 800 знаков — а с этим не справится ни один современный компьютер! Этот метод шифровки называется RSA, по первым буквам фамилий его создателей — Ривеста, Шамира и Адлемана.
Конечно, с развитием компьютерных технологий появляется возможность расшифровывать старые сообщения.
Первая шифровка авторов RSA, опубликованная ими в 1977 году как вызов всем дешифровальщикам мира, продержалась 17 лет.
Также есть опасность, что будет найден новый, быстрый алгоритм разложения чисел на простые множители. Но есть математическая гипотеза, что все такие алгоритмы работают принципиально не быстрее, чем уже известные.
А у вас получится?
Перед вами текст, который получен из хорошо известного заменой каждой буквы на какую-то другую. Расшифруйте его.
Атокг ацынг цлекытуы цлауенг ьи Чолсв, и уими Чолси уманлоти ки эекпв нипеме вматыфюеме, цаткзме утоь чтиьиме, жна ни ацынг ьималчити, андоти атокы д уналакв е, мокыы омв ки чатадо тхс, боцквти: – Пиё д уимам сото в Укоркаё палатодз, ка ак дцатко садаток е свмион, жна твжбо омв кечсо е щзнг ко марон. Цлежекаё ро дуомв аупатпе ьолпити, жна уесын в коча д уолсйо е д чтиьв. Еш киса вситенг, екижо ак кепачси ко щвсон жотадопам, е Укоркиы палатоди уашликен кис кем удаф дтиунг. – Ка ко цамаробг те нз Чолсо пип-кещвсг вкежнаренг янв дтиунг? – Уетгкоо, жом аки оунг, ы ко мачв ох усотинг. Ко десебг лиьдо, пип дотепи ох уети? Ко десебг, жна оё утврин е тфсе е реданкзо? Досг аки щауиы ащабти цатудони! Ко в киу ьикеминг оё уетв! Уети — д ох метам, кодеккам сонупам уолсожпо. Оуте аки уими ко умарон цлакепквнг д жолначе Укоркаё палатодз е еьдтожг еь уолсйи Пиы аупатпе, на мз е цасидка оё ко цамаром! Д сдвш метыш ануфси кижекионуы уис Укоркаё палатодз. Анкоуе нвси содажпв, уцвуне в щатгбача пвуни, цаплзнача плиукзме ычасиме, е, ко мобпиы, даьдлиюиёуы ащлинка!
|
Источник: https://elementy.ru/nauchno-populyarnaya_biblioteka/432482/Stoykie_shifry