Абсолютно стойкий шифр

Содержание
  1. Какие алгоритмы шифрования наиболее безопасны? | Портал о системах видеонаблюдения и безопасности
  2. Различные типы алгоритмов шифрования
  3. ECC
  4. XChaCha20
  5. RC6 (предыдущие версии-RC4 и RC5)
  6. AES
  7. Triple DES
  8. Blowfish
  9. RSA
  10. Diffie-Hellman
  11. DSA
  12. El Gamal
  13. Какие типы алгоритмов шифрования наиболее безопасны?
  14. Невзламываемый шифр Вернама — Журнал «Код»: программирование без снобизма
  15. Как работают такие алгоритмы
  16. Шифр Вернама — это сложно
  17. Почему этот шифр невзламываемый
  18. Пример работы
  19. Минусы шифра Вернама
  20. Что дальше
  21. Криптография: история шифровального дела
  22. Тайнопись древних цивилизаций 
  23. Фрагмент хирургического папируса, одного из наиболее важных медицинских текстов Древнего Египта
  24. Шифр Цезаря со сдвигом на 3: A заменяется на D, B заменяется на E и так далее. Z заменяется на C
  25. Тарабарщина, цифирь и другие шифры 
  26. Тайнопись XVI века, в основе которой числовые значения церковнославянских букв
  27. Шифровальный диск Леона Альберти
  28. Эпоха шифровальных машин
  29. Шифровальный цилиндр Томаса Джефферсона
  30. Роторы «Энигмы» в собранном состоянии.  wikimedia.org
  31. Криптография для всех
  32. Стойкие шифры • Библиотека
  33. Совершенный шифр
  34. Немного истории и литературы
  35. Шифры с открытым ключом
  36. А у вас получится?

Какие алгоритмы шифрования наиболее безопасны? | Портал о системах видеонаблюдения и безопасности

Абсолютно стойкий шифр

Шифрование превратилось в модное словечко. Мы все время слышим, как шифрование может защитить нас от прослушивания и слежки. Многие пользователи интернета используют зашифрованные приложения, электронную почту, мессенджеры или 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/

Невзламываемый шифр Вернама — Журнал «Код»: программирование без снобизма

Абсолютно стойкий шифр

Невзламываемый шифр Вернама

Про­дол­жа­ет­ся цикл ста­тей о шиф­ро­ва­нии и крип­то­гра­фии. В преды­ду­щих сериях:

Сего­дня раз­бе­рём невзла­мы­ва­е­мый сим­мет­рич­ный шифр. 

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

Как работают такие алгоритмы

Общие пра­ви­ла для абсо­лют­но стой­ких шиф­ров в сим­мет­рич­ном шиф­ро­ва­нии такие:

  1. Одно шиф­ро­ва­ние — один уни­каль­ный ключ. Вто­рое сооб­ще­ние шиф­ро­вать этим же клю­чом уже нельзя.
  2. Ключ состо­ит из слу­чай­ных битов, и каж­дый бит не зави­сит от дру­го­го. Это зна­чит, что нель­зя исполь­зо­вать в каче­стве клю­ча, напри­мер, отры­вок из кни­ги, пото­му что это рез­ко сни­жа­ет устой­чи­вость шиф­ра ко взлому.
  3. Дли­на клю­ча долж­на быть рав­на длине сооб­ще­ния или ключ дол­жен быть чуть длин­нее. Если ключ коро­че сооб­ще­ния, кото­рое нуж­но зашиф­ро­вать, то абсо­лют­ной стой­ко­сти не получится.

Если в алго­рит­ме соблю­да­ют­ся все три пра­ви­ла, то такой шифр взло­мать нель­зя даже теоретически.

В 1917 году теле­гра­фист Гиль­берт Вер­нам изоб­рёл шифр, кото­рый осно­ван на поби­то­вом исклю­ча­ю­щем ИЛИ. Если корот­ко и про­сто, то на каж­дую бук­ву ваше­го сооб­ще­ния накла­ды­ва­ет­ся дру­гая мас­ки­ру­ю­щая бук­ва, кото­рая дела­ет исход­ную бук­ву нечитаемой.

Шифр Вернама — это сложно

Теперь попро­бу­ем объ­яс­нить подробнее. 

1. Сооб­ще­ние хра­нит­ся в виде битов дан­ных. Допу­стим, мы шиф­ру­ем текст. Ком­пью­тер не уме­ет рабо­тать с тек­стом как тако­вым, он этот текст хра­нит как набор чис­ло­вых кодов (про­ще гово­ря, у ком­пью­те­ра все бук­вы про­ну­ме­ро­ва­ны и он пом­нит толь­ко эти номера).

Чис­ла, в свою оче­редь, ком­пью­тер хра­нит в виде дво­ич­но­го кода, то есть битов дан­ных. Это пока что не отно­сит­ся к шиф­ро­ва­нию, это про­сто то, как хра­нит­ся любая тек­сто­вая инфор­ма­ция в компьютере.

Бук­ваКод в ASCIIБиты дан­ных
K7501001011
O7901001111
D6801000100

Если мы напи­шем KOD в коди­ров­ке ASCII, то для ком­пью­те­ра это будет после­до­ва­тель­ность из трёх чисел, а каж­дое чис­ло — это набор битов: 

01001011 01001111 01000100

2. Берём слу­чай­ные биты в каче­стве клю­ча шиф­ро­ва­ния. На вхо­де у нас три чис­ла по 8 бит. Что­бы их зашиф­ро­вать, нам нуж­ны 24 слу­чай­ных бита. Возь­мём их с потол­ка, они ниче­го не значат: 

10101101 01111010 10101011

3. Накла­ды­ва­ем коды друг на дру­га и при­ме­ня­ем алго­ритм шиф­ро­ва­ния. Шифр Вер­на­ма постро­ен на прин­ци­пе «исклю­ча­ю­ще­го ИЛИ», он же XOR. Он смот­рит на каж­дую пару битов и пыта­ет­ся понять, они оди­на­ко­вые или раз­ные. Если биты оди­на­ко­вые, резуль­тат про­вер­ки будет 0, если раз­ные — 1.

Мож­но про­ве­рить себя так: XOR зада­ёт вопрос «Эти биты раз­ные»? Если да — то 1, если нет — то 0.

Бук­ва K01001011
Ключ10101101
XOR (Они разные?)11100110

Если мы таким обра­зом зако­ди­ру­ем три бук­вы, мы полу­чим три новых набо­ра битов: 

KOD (сооб­ще­ние)010010110100111101000100
Ключ101011010111101010101011
Резуль­тат шиф­ро­ва­ния с помо­щью XOR111001100011010111101111

Полу­ча­ет­ся, что на вхо­де у нас было 24 бита дан­ных и на выхо­де 24 бита дан­ных. Но эти дан­ные теперь совсем дру­гие. Если пере­ве­сти эти чис­ла обрат­но в текст, мы получим: 

Если у нас есть зако­ди­ро­ван­ное сооб­ще­ние и ключ от него, то рас­ко­ди­ро­вать его не соста­вит тру­да. Мы про­сто пишем алго­ритм, кото­рый при­ме­ня­ет опе­ра­цию XOR как бы в обрат­ном поряд­ке к каж­до­му биту сооб­ще­ния. Например: 

  1. Если в клю­че шиф­ро­ва­ния в каком-то бите сто­ит 1, то мы берём этот же бит в зашиф­ро­ван­ном сооб­ще­нии и меня­ем его. Если был 1, то меня­ем на 0. Если был 0, то меня­ем на 1. 
  2. Если в клю­че шиф­ро­ва­ния в каком-то бите сто­ит 0, то этот же бит в зашиф­ро­ван­ном сооб­ще­нии мы не меняем.
  3. Про­хо­дим так по каж­до­му биту сооб­ще­ния и полу­ча­ем исход­ный текст.

Ком­пью­тер может совер­шать мил­ли­ар­ды таких опе­ра­ций в секун­ду. Глав­ное — иметь на руках ключ для расшифровки. 

Почему этот шифр невзламываемый

Для нача­ла дого­во­рим­ся, что под взло­мом мы пони­ма­ем про­чте­ние это­го сооб­ще­ния без клю­ча. Если бы у нас был ключ, мы бы про­чи­та­ли это сооб­ще­ние почти сра­зу, и это уже не взлом. 

Теперь посмот­рим, поче­му без клю­ча этот шифр невоз­мож­но взломать. 

  • Каж­дый бит наше­го исход­но­го сооб­ще­ния шиф­ру­ет­ся соот­вет­ству­ю­щим битом, кото­рый берёт­ся из клю­ча шифрования.
  • Ключ шиф­ро­ва­ния — это слу­чай­ные биты, такой «циф­ро­вой шум». Он не име­ет смыс­ла и в нём нет ника­кой логи­ки. Каж­дый сле­ду­ю­щий бит может быть каким угодно. 
  • Шиф­ро­ва­ние про­ис­хо­дит на самом низ­ком уровне — на уровне битов. Мы даже не зна­ем, что перед нами: бук­вы, циф­ры, чис­ла, кар­тин­ки или аудио. Про­сто какой-то набор битов, кото­рые выгля­дят как циф­ро­вой шум. 

Един­ствен­ный спо­соб рас­шиф­ро­вать целое сооб­ще­ние — это полу­чить целый ключ. Если мы полу­чим лишь часть клю­ча, мы не смо­жем уга­дать или вос­ста­но­вить недо­ста­ю­щую часть. Сколь­ко клю­ча у нас есть — столь­ко битов сооб­ще­ния мы и рас­шиф­ру­ем. Нет клю­ча — нет расшифровки. 

Пример работы

Если мы зашиф­ру­ем так фра­зу «При­вет, это жур­нал Код!», то можем полу­чить что-то такое:

Шту­ка в том, что одна и та же бук­ва в шиф­ров­ке не озна­ча­ет оди­на­ко­вые бук­вы в исход­ном сооб­ще­нии, пото­му что биты шиф­ро­ва­ния выбра­ны слу­чай­ным обра­зом. Поэто­му при попыт­ке рас­шиф­ров­ки зло­умыш­лен­ник полу­чит такие варианты:

Сроч­но под­пи­шись на код

Вер­ни день­ги, а то вилы

мама, я сдал зачёт, ура

Ваш зам пре­да­тель и вор

Ваш зам ни при чём, вот

Так­же он может полу­чить любые дру­гие соче­та­ния букв, цифр и про­бе­лов в рам­ках тех 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

Все термины
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: