Элементарная криптография

    Под катом:
    • Шифр Цезаря
    • Шифр пар
    • Шифр четырех квадратов
    • Матричный шифр
    • Шифр ADFGX
    • Шифр Виженера

    Шифр Цезаря


    Каждую букву заменяют на третью (или N-ю) по алфавиту после нее.
    а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
    б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а
    в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б
    г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в
    ...
    Сообщение: хабрахабр
    Шифр:         шгдугшгду


    Шифр пар


    Алфавит случайным образом записывают в 2 строки, и шифрования текста происходит заменой буквы на соседнюю ей по вертикали.
    Пример таблицы:
    в ы э ё у ж и ф м н о ъ к п а р я
    е т х й ш ю д ь  б щ з с ц г ч л -
    Сообщение: хабрахабр
    Шифр:         эчмлчэчмл


    Шифр четырех квадратов


    Строят 4 квадрата размера 5х5 или 4х4 (в зависимости от объема алфавита). В каждый из них случайным образом записывают алфавит.



    Шифрование: Выбирая по 2 буквы сообщения, находим их соответственно в левом верхнем и правом нижнем квадрате.
    Для шифра используем 2 буквы, формирующих с выбранными вершины прямоугольника (слева направо)

    Сообщение: хабрахабр (ха бр ах аб рр)
    Шифр:         днедлягозн (дн ед ля го зн)


    Матричный шифр


    Подготавливаем матрицу MxN.
    Подготавливаем два ключа KM и KN.

    1) Сообщение по строкам записываем в матрицу MxN.
    2) По краям матрицы записываем ключи.
    3) Строки переставляем так, чтобы буквы ключа стали упорядоченными по алфавиту.
    То же делаем со столбцами.
    4) Списываем буквы из матрицы по столбцам.

    Размеры матрицы: M=4, N=5
    Ключ KM: пуля, KN: дурак.



    Сообщение: заголовок должен быть наполнен смыслом
    Шифр:         еокьозобнлднжготлавымлмосаеооныооосолпно


    Шифр ADFGX


    В матрицу 5х5 случайным образом записывают (определенным образом) буквы латинского алфавита
    Используем слово-ключ (например, formula).



    Сообщение: one two three

    1) каждой букве сообщения ставим в соответствие 2 буквы (по таблице).



    2) полученный текст записываем под ключом:



    3) переставляем столбцы так, чтобы буквы ключа упорядочились по алфавиту:



    4) записываем буквы из полученной матрицы (по столбцам) в шифр.

    Сообщение: one two three
    Шифр:         ADXF DDDF FAFX XDDX FXDX FGXF XFXF


    Шифр Виженера


    На алфавите длиной N вводят операцию добавления (циклического сдвига) букв.



    Пронумеровав буквы, добавляем их по модулю N (для англ. алфавита N=26).



    Выбираем слово-ключ (пускай pass) и подписываем его под сообщением сколько нужно раз



    Сообщение: search twitter
    Шифр:         hesjrhloxtlwg



    Для разминки предлагаю заинтересованным хабрапользователям составить пару шифров и дать возможность другим их отгадать, предварительно указав метод шифрования.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 40

      +5
      Было бы еще интересно прочитать про дешифровку. К примеру «Для расшифровки больших текстов, зашифрованных с помощью „Шифр пар“, можно воспользоваться частотной таблицей»
        +1
        Дешифровка — в обратном порядке.
        На счет усложнения (большое сообщение, например) этих методов я ничего сказать не могу так как не углублялся в этот вопрос. Но здесь наверняка есть хороший специалист, который даст вам ответ :)
          +4
          Судя по
          Для расшифровки больших текстов, зашифрованных с помощью „Шифр пар“, можно воспользоваться частотной таблицей
          имелся ввиду криптоанализ и «взлом» ключа.
          +2
            0
            Спасибо
          +4
          Помню в школе баловался подобными шифрами с товарищем. Шифровали записки друг другу.
          А статья хорошая, удачно оформлена, все ясно из нее.
            +1
            А у нас в школе шифр был попроще — первую и последнюю буквы в словах меняли местами, короткие слова было не узнать :-)
            +1
            Меня всегда шифр Древней Спарты радовал.
            • UFO just landed and posted this here
                +2
                Жаль, что автор погнался за минимализмом. Ну ведь можно ж было развернуто написать: с краткой предысторией, например.
                  +7
                  Не хочется так думать, но похоже, что многие рванули за ППА, а не за минимализмом.
                    +1
                    За то время пока я получу хотя бы значок «Автор», я смогу заработать на порядок больше 3000р.
                    На эту статью я потратил утром около 4х часов. Так что ее «минимализмом» не считаю, хотя, возможно, со стороны так и выглядит.
                      0
                      Если бы Вы хотя бы дали краткую предысторию появления и применения этих алгоритмов, то статья могла бы получиться очень «сочной».
                        0
                        Учту на будущее.
                          0
                          Я не был уверен в своей правоте, поэтому и написал — «многие» (основываясь на статьи других авторов) ;)
                          Помимо предыстории было бы замечательно, если бы рассказали про стойкость этих шифров, про способы взлома. Я не говорю, что статья плохая, я говорю, что она была бы еще лучше, если бы была чуть полнее;)
                  0
                  Криптономикон вспомнился. Там как раз вроде про последний ширф рассказывали.
                    +2
                    мне очень нравится стиль изложения книги
                    Саймон Сингх
                    Книга шифров. Тайная история шифров и их расшифровки
                    The Code Book
                    www.ozon.ru/context/detail/id/3217966/

                    много описано истории шифров, как они творили историю, как их взламывали и приходили новые шифры и их снова взламывали… и так повторялось вновь и вновь…
                    советую купить и прочесть…
                    в книге нашел ответ почему в шифре ADFGX именно эти латинские буквы… оказывается он был «заточен» на шифрацию того, что будет передаваться азбукой Морзе, а морзянка букв ADFGX отличается и меньше ошибок при передаче… и тд и тп
                    очень интересная книга… рекомендую! свою отдал читать коллегам =) заставил силом =)
                      0
                      Спасибо!
                        +1
                        Спасибо, всё расписано понятно и красиво. Будем теперь шифроваться)
                          +3
                          Помню в школьные годы купил книжку по шифрам. Там были различные способы составления шифровок, в том числе и приведенные вами. К ним могу добавить еще такой:
                          На ребристый карандаш накручивается спиралью тонкая полоска бумаги так, чтобы закрыть весь карандаш (зависит от длины сообщения и карандаша), а потом в строчку вдоль карандаша пишем сообщение. На других ребрах пишем хаотично буквы. Потом, когда полоску снимем с карандаша, то получится шифровка. Прочитать можно, если снова накрутить полоску на карандаш.
                          Такие шифровки даже одно время применялись, правда не на карандашах, а на специальных граненых валах разного диаметра, чтобы сложнее было расшифровать сообщение.
                          0
                          Статья подталкивает использовать и модифицировать шифр, а также применять его в переписке.
                            0
                            Помню тоже игрался шифрованием фраз-ключами.Написал на VB программку аля «ЛанЧатСекьурити».По переписывались пару раз с другом, сказали «круто» и забили.Думаю надобность в таких программах отпадает.Хотя для паранойи самопал такой всегда самый лучший. =)
                              0
                              Странно, что у Цезаря была такая простая шифровка =)
                                0
                                притом, что грамотных было при цезаре раз в 1000 меньше, чем сейчас. Да и представляю выражения лица «грамотного» римлянина, прочитавшего шифровку…
                                  0
                                  ну не думаю, что они были настолько тупы, чтоб не попробовать проанализировать текст в соответствии с алфавитом
                                +1
                                Надо бы такой шифр, чтобы не только шифровал по паролю, но еще бы и по паролю выбирал, в какой последовательности использовать алгоритмы шифрования. Забил штук сто разных алгоритмов и вперед — шифровать не только буквы, но и последовательность применения алгоритмов.
                                В детстве всегда увлекала такая идея. Интересно, почему она на практике редко применяется…
                                  +1
                                  Потому что это не очень сильно влияет на криптостойкость.
                                    0
                                    Видимо, потому что на практике такое перемешивание алгоритмов не дает выигрыша по сравнению с использованием одного алгоритма, см. принцип Керкгоффса.
                                      0
                                      Принцип Керкгоффса все же немного не то. У меня речь идет о том, чтобы сам алгоритм шифрования менялся в зависимости от пароля. Насколько я знаю, сейчас никто алгоритмы шифрования не меняет по этому принципу (я не говорю, что это плохо, просто не очень интересно). Алгоритм один и работает он по ключу одинаковым способом. Интересней было бы, если б менялся еще и сам алгоритм. Конечно, врагу будет известно, как этот алгоритм меняется в зависимости от пароля, поэтому принцип Керкгоффса нарушен не будет.
                                        0
                                        Имелось в виду, что для алгоритмов, разработанных в соответствии с этим принципом, использование последовательности алгоритмов, задаваемой паролем (вместо одного), практической ценности не несет.
                                          0
                                          Ну да, не несет. Но только если вы будете искать пароль брутфорсом. Вот если какой-то умник придумает способ открыть шифр без брутфорса (ну например откроют способ найти делители простых чисел), то в этом случае практическая ценность будет наличествовать — из множества разных алгоритмов наверняка останутся те, которые по прежнему можно будет открыть только брутфорсом. Т.е. взломать шифр с переменным алгоритмом без брутфорса вообще будет невозможно.
                                      0
                                      Насколько я помню, в TrueCrypt можно выбрать последовательность из трех типов шифрования. Но она задается пользователем, а не на основе ключа.
                                      0
                                      я когда-то читал, что в древнем мире был ещё и такой вариант: предложение записывалось в квадрат, к примеру, в 4х4 ячейки:

                                      катя
                                      тыпо
                                      лная
                                      дура

                                      а затем текст читался не по строкам, а по столбцам, и получалась шифровка:

                                      ктлдаынутпаряояа

                                      кто подскажет, как этот шифр называется в русской литературе?
                                        0
                                        Скитала
                                        Уже упоминали об этом шифре :)
                                          0
                                          Какой же это скитала, это первый шаг AES — транспозиция 16-байтного блока :)
                                        0
                                        Спасибо, очень интересная статья!
                                        Предлагаю добавить решетку Кардано

                                        Only users with full accounts can post comments. Log in, please.