современные шифры и коды
Классический криптоанализ
На протяжении многих веков люди придумывали хитроумные способы сокрытия информации — шифры, в то время как другие люди придумывали еще более хитроумные способы вскрытия информации — методы взлома.
В этом топике я хочу кратко пройтись по наиболее известным классическим методам шифрования и описать технику взлома каждого из них.
Шифр Цезаря
Самый легкий и один из самых известных классических шифров — шифр Цезаря отлично подойдет на роль аперитива.
Шифр Цезаря относится к группе так называемых одноалфавитных шифров подстановки. При использовании шифров этой группы «каждый символ открытого текста заменяется на некоторый, фиксированный при данном ключе символ того же алфавита» wiki.
Способы выбора ключей могут быть различны. В шифре Цезаря ключом служит произвольное число k, выбранное в интервале от 1 до 25. Каждая буква открытого текста заменяется буквой, стоящей на k знаков дальше нее в алфавите. К примеру, пусть ключом будет число 3. Тогда буква A английского алфавита будет заменена буквой D, буква B — буквой E и так далее.
Для наглядности зашифруем слово HABRAHABR шифром Цезаря с ключом k=7. Построим таблицу подстановок:
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g |
И заменив каждую букву в тексте получим: C(‘HABRAHABR’, 7) = ‘OHIYHOHIY’.
При расшифровке каждая буква заменяется буквой, стоящей в алфавите на k знаков раньше: D(‘OHIYHOHIY’, 7) = ‘HABRAHABR’.
Криптоанализ шифра Цезаря
Малое пространство ключей (всего 25 вариантов) делает брут-форс самым эффективным и простым вариантом атаки.
Для вскрытия необходимо каждую букву шифртекста заменить буквой, стоящей на один знак левее в алфавите. Если в результате этого не удалось получить читаемое сообщение, то необходимо повторить действие, но уже сместив буквы на два знака левее. И так далее, пока в результате не получится читаемый текст.
Аффиный шифр
Рассмотрим немного более интересный одноалфавитный шифр подстановки под названием аффиный шифр. Он тоже реализует простую подстановку, но обеспечивает немного большее пространство ключей по сравнению с шифром Цезаря. В аффинном шифре каждой букве алфавита размера m ставится в соответствие число из диапазона 0… m-1. Затем при помощи специальной формулы, вычисляется новое число, которое заменит старое в шифртексте.
Процесс шифрования можно описать следующей формулой:
,
где x — номер шифруемой буквы в алфавите; m — размер алфавита; a, b — ключ шифрования.
Для расшифровки вычисляется другая функция:
,
С учетом этого ограничения вычислим пространство ключей аффиного шифра на примере английского алфавита. Так как английский алфавит содержит 26 букв, то в качестве a может быть выбрано только взаимно простое с 26 число. Таких чисел всего двенадцать: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 и 25. Число b в свою очередь может принимать любое значение в интервале от 0 до 25, что в итоге дает нам 12*26 = 312 вариантов возможных ключей.
Криптоанализ аффиного шифра
Очевидно, что и в случае аффиного шифра простейшим способом взлома оказывается перебор всех возможных ключей. Но в результате перебора получится 312 различных текстов. Проанализировать такое количество сообщений можно и в ручную, но лучше автоматизировать этот процесс, используя такую характеристику как частота появления букв.
Давно известно, что буквы в естественных языках распределены не равномерно. К примеру, частоты появления букв английского языка в текстах имеют следующие значения:
Т.е. в английском тексте наиболее встречающимися буквами будут E, T, A. В то время как самыми редкими буквами являются J, Q, Z. Следовательно, посчитав частоту появления каждой буквы в тексте мы можем определить насколько частотная характеристика текста соответствует английскому языку.
Для этого необходимо вычислить значение:
,
где ni — частота i-й буквы алфавита в естественном языке. И fi — частота i-й буквы в шифртексте.
Чем больше значение χ, тем больше вероятность того, что текст написан на естественном языке.
Таким образом, для взлома аффиного шифра достаточно перебрать 312 возможных ключей и вычислить значение χ для полученного в результате расшифровки текста. Текст, для которого значение χ окажется максимальным, с большой долей вероятности и является зашифрованным сообщением.
Разумеется следует учитывать, что метод не всегда работает с короткими сообщениями, в которых частотные характеристики могут сильно отличатся от характеристик естественного языка.
Шифр простой замены
Очередной шифр, относящийся к группе одноалфавитных шифров подстановки. Ключом шифра служит перемешанный произвольным образом алфавит. Например, ключом может быть следующая последовательность букв: XFQABOLYWJGPMRVIHUSDZKNTEC.
При шифровании каждая буква в тексте заменяется по следующему правилу. Первая буква алфавита замещается первой буквой ключа, вторая буква алфавита — второй буквой ключа и так далее. В нашем примере буква A будет заменена на X, буква B на F.
При расшифровке буква сперва ищется в ключе и затем заменяется буквой стоящей в алфавите на той же позиции.
Криптоанализ шифра простой замены
Шифр Полибия
Еще один шифр подстановки. Ключом шифра является квадрат размером 5*5 (для английского языка), содержащий все буквы алфавита, кроме J.
При шифровании каждая буква исходного текста замещается парой символов, представляющих номер строки и номер столбца, в которых расположена замещаемая буква. Буква a будет замещена в шифртексте парой BB, буква b — парой EB и так далее. Так как ключ не содержит букву J, перед шифрованием в исходном тексте J следует заменить на I.
Например, зашифруем слово HABRAHABR. C(‘HABRAHABR’) = ‘AB BB EB DA BB AB BB EB DA’.
Криптоанализ шифра Полибия
Шифр имеет большое пространство ключей (25! = 2 83 для английского языка). Однако единственное отличие квадрата Полибия от предыдущего шифра заключается в том, что буква исходного текста замещается двумя символами.
Поэтому для атаки можно использовать методику, применяемую при взломе шифра простой замены — поиск восхождением к вершине.
В качестве основного ключа выбирается случайный квадрат размером 5*5. В ходе каждой итерации ключ подвергается незначительным изменениям и проверяется насколько распределение триграмм в тексте, полученном в результате расшифровки, соответствует распределению в естественном языке.
Перестановочный шифр
Помимо шифров подстановки, широкое распространение также получили перестановочные шифры. В качестве примера опишем Шифр вертикальной перестановки.
В процессе шифрования сообщение записывается в виде таблицы. Количество колонок таблицы определяется размером ключа. Например, зашифруем сообщение WE ARE DISCOVERED. FLEE AT ONCE с помощью ключа 632415.
Так как ключ содержит 6 цифр дополним сообщение до длины кратной 6 произвольно выбранными буквами QKJEU и запишем сообщение в таблицу, содержащую 6 колонок, слева направо:
Для получения шифртекста выпишем каждую колонку из таблицы в порядке, определяемом ключом: EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE.
При расшифровке текст записывается в таблицу по колонкам сверху вниз в порядке, определяемом ключом.
Криптоанализ перестановочного шифра
Лучшим способом атаки шифра вертикальной перестановки будет полный перебор всех возможных ключей малой длины (до 9 включительно — около 400 000 вариантов). В случае, если перебор не дал желаемых результатов, можно воспользоваться поиском восхождением к вершине.
Для каждого возможного значения длины осуществляется поиск наиболее правдоподобного ключа. Для оценки правдоподобности лучше использовать частоту появления триграмм. В результате возвращается ключ, обеспечивающий наиболее близкий к естественному языку текст расшифрованного сообщения.
Шифр Плейфера
Шифр Плейфера — подстановочный шифр, реализующий замену биграмм. Для шифрования необходим ключ, представляющий собой таблицу букв размером 5*5 (без буквы J).
Процесс шифрования сводится к поиску биграммы в таблице и замене ее на пару букв, образующих с исходной биграммой прямоугольник.
Рассмотрим, в качестве примера следующую таблицу, образующую ключ шифра Плейфера:
Зашифруем пару ‘WN’. Буква W расположена в первой строке и первой колонке. А буква N находится во второй строке и третьей колонке. Эти буквы образуют прямоугольник с углами W-E-S-N. Следовательно, при шифровании биграмма WN преобразовывается в биграмму ES.
В случае, если буквы расположены в одной строке или колонке, результатом шифрования является биграмма расположенная на одну позицию правее/ниже. Например, биграмма NG преобразовывается в биграмму GP.
Криптоанализ шифра Плейфера
Так как ключ шифра Плейфера представляет собой таблицу, содержащую 25 букв английского алфавита, можно ошибочно предположить, что метод поиска восхождением к вершине — лучший способ взлома данного шифра. К сожалению, этот метод не будет работать. Достигнув определенного уровня соответствия текста, алгоритм застрянет в точке локального максимума и не сможет продолжить поиск.
Чтобы успешно взломать шифр Плейфера лучше воспользоваться алгоритмом имитации отжига.
Отличие алгоритма имитации отжига от поиска восхождением к вершине заключается в том, что последний на пути к правильному решению никогда не принимает в качестве возможного решения более слабые варианты. В то время как алгоритм имитации отжига периодически откатывается назад к менее вероятным решениям, что увеличивает шансы на конечный успех.
Суть алгоритма сводится к следующим действиям:
Для расчета коэффициентов, определяющих принадлежность текста к естественному языку лучше всего использовать частоты появления триграмм.
Шифр Виженера
Шифр Виженера относится к группе полиалфавитных шифров подстановки. Это значит, что в зависимости от ключа одна и та же буква открытого текста может быть зашифрована в разные символы. Такая техника шифрования скрывает все частотные характеристики текста и затрудняет криптоанализ.
Шифр Виженера представляет собой последовательность нескольких шифров Цезаря с различными ключами.
Продемонстрируем, в качестве примера, шифрование слова HABRAHABR с помощью ключа 123. Запишем ключ под исходным текстом, повторив его требуемое количество раз:
Цифры ключа определяют на сколько позиций необходимо сдвинуть букву в алфавите для получения шифртекста. Букву H необходимо сместить на одну позицию — в результате получается буква I, букву A на 2 позиции — буква C, и так далее. Осуществив все подстановки, получим в результате шифртекст: ICESCKBDU.
Криптоанализ шифра Виженера
Первая задача, стоящая при криптоанализе шифра Виженера заключается в нахождении длины, использованного при шифровании, ключа.
Для этого можно воспользоваться индексом совпадений.
Индекс совпадений — число, характеризующее вероятность того, что две произвольно выбранные из текста буквы окажутся одинаковы.
Для любого текста индекс совпадений вычисляется по формуле:
,
где fi — количество появлений i-й буквы алфавита в тексте, а n — количество букв в тексте.
Для английского языка индекс совпадений имеет значение 0.0667, в то время как для случайного набора букв этот показатель равен 0.038.
Более того, для текста зашифрованного с помощью одноалфавитной подстановки, индекс совпадений также равен 0.0667. Это объясняется тем, что количество различных букв в тексте остается неизменным.
Это свойство используется для нахождения длины ключа шифра Виженера. Из шифртекста по очереди выбираются каждая вторая буквы и для полученного текста считается индекс совпадений. Если результат примерно соответствует индексу совпадений естественного языка, значит длина ключа равна двум. В противном случае из шифртекста выбирается каждая третья буква и опять считается индекс совпадений. Процесс повторяется пока высокое значение индекса совпадений не укажет на длину ключа.
Успешность метода объясняется тем, что если длина ключа угадана верно, то выбранные буквы образуют шифртекст, зашифрованный простым шифром Цезаря. И индекс совпадений должен быть приблизительно соответствовать индексу совпадений естественного языка.
После того как длина ключа будет найдена взлом сводится к вскрытию нескольких шифров Цезаря. Для этого можно использовать способ, описанный в первом разделе данного топика.
Исходники всех вышеописанных шифров и атак на них можно посмотреть на GitHub.
День шифровальщика: подборка книг по теме
Сегодня в России отмечается день шифровальщика. Давно в прошлом те времена, когда шифрование было уделом только военных и шпионов. Теперь оно повсеместно используется в IT. Поэтому в честь праздника мы сделали для вас подборку книг по вопросам, связанным с шифрованием.
Прикладная криптография. Протоколы, алгоритмы и исходный код на C
В книге рассказывается, как программисты и специалисты по электронным коммуникациям могут использовать криптографию для сохранения приватности данных. Описаны десятки алгоритмов, даются практические советы по их внедрению в ПО, показывается, какие проблемы они могут решить.
Методы дискретной математики в криптологии
Книга написана ведущим специалистом в области криптологии, имеющим многолетний опыт преподавания в МИФИ. Систематически изложены свойства функций, определенных на конечных множествах, актуальные для построения и анализа криптографических систем. С целью закрепления материала даны задачи и упражнения.
Применение искусственных нейронных сетей и системы остаточных классов в криптографии
В монографии изложены идеи искусственных нейронных сетей и системы остаточных классов в их приложении к криптографии, причем рассмотрены различные типы искусственных нейронных сетей. Представлены результаты научных исследований за последнее десятилетие в области защиты информации с применением элементов искусственного интеллекта и модулярной арифметики. Изложенные результаты представляют значительный интерес для современных разработчиков нейросетевых криптосистем на базе системы остаточных классов. Приведена библиография работ по применению нейрокомпьютеров для решения задач теории графов.
Шифраторы и радиоразведка. Щит и меч информационного мира. Том 1. Записки криптографа
В центре внимания автора — вещи, ранее скрытые от обычных граждан плотным покровом тайны: криптография, шифрование, радиоразведка. И кто бы мог подумать, что от них зависят не только судьбы государств и величайших правителей мира, но и повседневная личная жизнь простых граждан.
Еще несколько лет назад сценарий развития событий в информационном киберпространстве будущего, описанный автором, казался фантастическим, но сегодня, к сожалению, многие из предвидений и предупреждений Анатолия Клепова становятся частью нашей жизни. И что нас ждет впереди?
Способен ли будет человек уже в недалеком будущем самостоятельно защитить себя от посягательств хакеров или преступников? Не воспользуется ли один из злоумышленников возможностью взять под контроль информацию и даже сознание цивилизации?!
The Code Book: The Secret History of Codes and Code-breaking
От древних кодов до увлекательного мира квантовых вычислений — автор приводит очень наглядные примеры, иллюстрирующие высокую сложность и трудность криптоанализа. Привлекается современная лингвистика, математика и информатика. Это бесконечный квест — оберегание нашей приватности от вторжения правительств, корпораций, конкурентов и любопытных. В современном технологическом мире существует немало проблем с приватностью.
Mastering Bitcoin: Unlocking Digital Cryptocurrencies
Эта книга будет полезна всем, кто интересуется основами криптовалют, техническими операциями с биткоинами, а также разработчикам следующего поколения криптовалют или использующих их приложений. Эта книга поможет вам проработать все аспекты цифровых денег: от использования кошелька до покупки товаров и запуска торговой площадки с сотнями тысяч транзакций, а также построения новых финансовых инноваций, которые изменят наше представление о валюте и кредите.
Understanding Cryptography: A Textbook for Students and Practitioners
После вводной части о криптографии и безопасности данных автор объясняет основные технологии в современной криптографии. Есть главы, посвящённые:
Здесь минимум математики, упор сделан на связь технологий и описания практических реализаций, включая «лёгкие» шифры для RFID и мобильных устройств.
Bulletproof SSL and TLS: Understanding and Deploying SSL/TLS and PKI to Secure Servers and Web Applications
Это полное руководство по использованию SSL- и TLS-шифрования для развёртывания безопасных серверов и веб-приложений.
Cryptography Engineering: Design Principles and Practical Applications
В книге рассматриваются такие темы, как блочные шифры, блочные режимы, хэш-функции, режимы шифрования, коды, удостоверяющие подлинность сообщений, проблемы внедрения, протоколы переговоров и многое другое.
Data Hiding: Exposing Concealed Data in Multimedia, Operating Systems, Mobile Devices and Network Protocols
В книге исследуются современные и перспективные инструменты и методики, используемые в секретных коммуникациях, передовых методах вредоносного ПО и тактиках сокрытия данных. Описанные методы скрытия включают в себя новейшие технологии, в том числе мобильные устройства, мультимедиа, виртуализацию и другие. Эти концепции дают корпоративному, правительственному и военному персоналу знания для расследования и защиты от внутренних угроз, шпионских приемов, шпионажа, передовых вредоносных программ и секретных сообщений. Поняв угрозы во всём их разнообразии, вы поймёте, как защищаться от них посредством обнаружения, расследования, смягчения и предотвращения.
Cryptography & Open Source
В книге даётся хороший теоретический базис по шифрованию и расшифровке сообщений на основе простых математических ухищрений и многих других методов, в том числе применительно к Open Source.
The Mathematics of Secrets: Cryptography from Caesar Ciphers to Digital Encryption
Автор показывает, какой математический фундамент лежит в основе многих кодов и шифров. В книге рассказывается как о создании, так и о взломе шифров, обсуждаются многие древние и современные шифры. Начинается повествования с одного из простейших — шифра Цезаря, и показывается, какая в его основе лежит математическая идея, как можно увеличить его гибкость. Затем рассматриваются полиалфавитные подстановочные шифры, перестановочные шифры, показывается связь между шифрами и компьютерным шифрованием, обсуждается поточное шифрование и шифрование, подразумевающее потенцирование. Автор исследует шифры с открытым ключом, и рассуждает о шифровании будущего, о путях развития криптографии.
Post-Quantum Cryptography
Квантовые компьютеры позволят взламывать современные наиболее популярные шифры с открытым ключом, включая RSA, DSA и ECDSA. В книге рассказывается о криптографических алгоритмах нового поколения, о системах, способных противостоять атакам квантовых компьютеров. В частности, рассматриваются постквантовые системы шифрования и подписи с открытым ключом. Рассказывается о современном состоянии квантовых вычислений, шифровании на базе хэшей, кодов, решёток (lattice), а также о многомерном шифровании.
The Mathematics of Ciphers: Number Theory and RSA Cryptography
Это введение в алгоритмические аспекты теории чисел и их применения в криптографии с упором на RSA. Также приведено большое количество интересных исторических фактов.
Number Theory in Science and Communication: With Applications in Cryptography, Physics, Digital Information, Computing, and Self-Similarity
В этом введении в область прикладной математики, коей является шифрование, делается упор на интуитивное понимание, а не абстрактную теорию. Выделены такие важные идеи, как непрерывные дроби, золотое сечение, квадратичный вычет и китайская теорема об остатках, функции с секретом, псевдопростые числа и примитивные элементы. Их применение для решения реальных проблем — главная тема книги.
Топ-10: коды и шифры
Самые действенные способы кодирования
1. Стеганография
Стеганография является более древней, чем коды и шифры, и обычно её называют тайнописью, искусством скрытой записи. Например, сообщение может быть написано на бумаге, покрытой воском, и гонец должен проглотить его и таким образом обеспечить скрытность, а в нужный момент отрыгнуть, чтобы сообщение можно было прочитать. Другим способом является татуировка сообщения на гладко выбритой голове посланника, затем надо подождать, когда волосы опять вырастут, чтобы скрыть сообщение. Лучший способ тайнописи — это использование обычных предметов для сокрытия сообщения. В Англии был популярен метод тайнописи, для которого использовали обычную газету с крошечными точками под буквами на первой странице, которые указывали, какие буквы следует читать, чтобы получить сообщение. Некоторые люди могли составить сообщение, используя первые буквы каждого слова в каком-либо тексте или используя невидимые чернила. Конкурирующие страны
могут так уменьшить текст, что целая страница текста становится размером с пиксель, который будет незаметен для постороннего глаза. Стеганографию лучше всего использовать в сочетании с кодом или шифром, так как существует риск, что тайное послание может быть обнаружено.
2. ROT1
Этот шифр знаком многим детям. Ключ к шифру очень прост: каждая буква алфавита заменяется на последующую букву, поэтому, А заменяется на Б, Б заменяется на В, и так далее. «ROT1» буквально означает «вращать на 1 букву вперед по алфавиту». Фраза, «Я все знаю» превратится в секретную фразу «А гтё кобя». Этот шифр предназначен для развлечения, потому что его, легко понять и использовать, и столь же легко расшифровать, даже если ключ используется в обратном направлении.
3. Перестановка
В перестановочном шифре буквы переставляются с использованием некоторых заданных правил или ключей. Например, слова могут быть записаны в обратном направлении, так что фраза «рад видеть вас» превращается во фразу «дар ьтедив сав». Другой перестановочный ключ заключается в перестановке каждой пары букв, так что предыдущее сообщение становится «ар вд ди те вь са». Такие шифры использовались для того, чтобы отправлять конфиденциальные сообщения во время Первой мировой войны и Гражданской войны в США. На первый взгляд, кажется, что сложные правила перестановки могут сделать эти шифры очень трудными. Однако, многие зашифрованные сообщения могут быть расшифрованы с использованием анаграмм или современных компьютерных алгоритмов, которые перебирают тысячи возможных ключей перестановки.
4. Код Морзе (Азбука Морзе)
Несмотря на свое название, код Морзе не является кодом — это шифр. Каждая буква алфавита, цифры от 0 до 9 и некоторые символы пунктуации заменены на последовательность коротких и длинных звуковых сигналов, которые часто называют «точка и тире». А становится «• — «, Б становится « — • • •” и так далее. В отличие от большинства других шифров, код Морзе не используется для сокрытия сообщений. Код Морзе начал широко применяться с изобретением телеграфа Сэмюэлем Морзе. Это было первое широко используемое электрическое приспособление для передачи сообщений на дальние расстояния. Телеграф произвел революцию в средствах массовой информации и позволял немедленно передавать сообщения о событиях, произошедшие в одной стране, по всему миру. Код Морзе изменил характер войны, позволяя обеспечивать мгновенную связь с войсками на большом расстоянии.
5. Шифр Цезаря
Шифр Цезаря (сдвижной), называется так потому, что он использовался Юлием Цезарем. Шифр состоит на самом деле из 33 различных шифров (количество шифров меняется в зависимости от алфавита используемого языка), по одной на каждую букву алфавита. «ROT1» является лишь одним из этих шифров. Человек должен был знать, какой шифр Цезаря использовать для того, чтобы расшифровать сообщение. Если используется шифр Ё, то, А становится Ё, Б становится Ж, В становится З, и так далее по алфавиту. Если используется шифр Ю, то, А становится Ю, Б становится Я, В становится, А, и так далее. Данный алгоритм является основой для многих более сложных шифров, но сам по себе не обеспечивает надежную защиту тайны сообщений, поскольку проверка 33-х различных ключей шифра займет относительно небольшое время.
6. Моноалфавитная замена
ROT1, шифр Цезаря и азбука Морзе относятся к одному и тому же типу — моноалфавитной замене, а это означает, что каждая буква алфавита заменяется в соответствии с ключом, другой буквой или символом. На самом деле их легко расшифровать, даже не зная ключа. Наиболее употребительной буквой в английском языке является буква Е. Таким образом, во многих моноалфавитных шифрах, наиболее употребительной буквой или символом также будет E (прим. переводчика. — в русском языке наиболее употребительная — это буква О). Вторая наиболее употребительная буква в английском языке — это T, и третьей является буква, А, поэтому эти две буквы также могут быть определены для дешифрования. С этой точки зрения, человек может расшифровать сообщение с использованием частотности английских букв, или он может искать почти полные слова, такие как «T_E», которое наиболее вероятным образом является
«THE».
7. Шифр Виженера
Данный алгоритм является более сложным, чем моноалфавитныя замена. Его ключевыми словами являются, такие слова, как например «CHAIR». Первая буква сообщения с ключевым словом «CHAIR» будет закодирована с алфавитным шифром С, вторая буква с алфавитным шифром Н и так продолжается до последней буквы ключевого слова. Ключевое слово состоит всего из пяти букв, так что для шестой буквы сообщения снова будет использоваться алфавитный шифр С. Длительное времени считалось, что Шифр Виженера взломать невозможно. Чтобы его расшифровать, прежде всего, надо найти длину ключевого слова. Если ключевое слово состоит из пяти букв, то буквы с номерами 1, 6, 11, 16, 21, и т. д. будут соответствовать первой букве ключевого слова, и анализ частотности букв позволит расшифровать сообщение. Декодеровщик затем переходит на буквы 2, 7, 12, 17, и так далее. Если ключевое слово, действительно состоит из пяти букв,
то расшифровать сообщение будет несложно. Если нет, то надо найти другое ключевое слово, и снова повторить процесс.
8. Подлинный код
В подлинном коде каждое слово заменено кодовым словом или номером в соответствии с ключом. Поскольку в сообщении может быть много слов, ключ, как правило, находится в книге кодов. Декодеровщик может посмотреть английское слово и найти соответствующее кодовое слово. Поскольку короткие сообщения трудно расшифровать с помощью анализа частотности букв, код должен быть чрезвычайно длинным, в противном случае анализ частоты употребления слова становится полезным в декодировании. По этой причине коды труднее расшифровать, чем шифры. Многие страны используют такие варианты кода, в которых каждый день используется новый код, чтобы предотвратить декодирование с помощью частотного анализа слов. Для повседневной жизни, однако, использование кодов — довольно утомительный процесс и книги кодов довольно громоздкие. Если книга кодов украдена, то код уже небезопасный, и необходимо составить новый код, а это
требует огромного количество времени и усилий. Коды в основном полезны для богатых и влиятельных, которые могут делегировать эту работу другим.
9. Код Энигма
Код Энигма, который был очень сложным шифром, использовался немцами во время Второй Мировой войны. Для этого использовали машину Энигма, которая очень похожа на пишущую машинку, при нажатии на определенную букву на экране загоралась буква шифра. Машина имела несколько колес, которые были связаны с буквами проводами, для определения, какая буква шифра будет высвечиваться. Все машины Энигма были идентичны, и начальная конфигурация колес была ключом к шифрованию сообщений. Чтобы усложнить процесс, колесо должно было вращаться после того, как определённое количество букв было напечатано. Немецкое командование каждый день выдавало списки начальной конфигурации колес для использования в шифровании, так что все немецкие командиры использовали одну и ту же конфигурацию, и могли расшифровать сообщения друг друга. Даже когда союзники заполучили копию машины, они все равно не могли расшифровать сообщения, поскольку машина выдавала
сотню триллионов возможных начальных конфигураций колес. Код Энигма был взломан польскими умельцами и окончательно расшифрован англичанами, которые использовали смекалку и компьютеры. Знание немецких коммуникационных систем дало союзникам значительное преимущество в ходе войны, а процесс взлома кода Энигма позволил создать первый прообраз компьютера.
10. Криптография с открытыми ключами
Это самый современный шифр, и он имеет несколько вариантов. Это шифр, который используется во всем мире, и имеет два ключа: один открытый и один личный. Открытый ключ — это большое число, доступное всем. Ключ является таким сложным потому что при делении можно получить только два целых числа (кроме 1 и самого числа). Эти два числа и есть личный ключ, и, если их перемножить, получится открытый ключ. Например, открытый ключ может быть 1961, следовательно, личный ключ — это 37 и 53. Открытый ключ используется для шифрования сообщения, и сообщение невозможно расшифровать без личного ключа. При отправке личных данных в банк, или когда ваша банковская карта обрабатывается машиной, данные зашифрованы именно таким образом, и только банк со своим личным ключом может получить к ним доступ. Причина, почему этот способ является настолько безопасным, заключается в том, что математически очень трудно найти
делители больших чисел. Для улучшения безопасности до 2007 года компания «RSA Laboratories» выплачивала деньги любому, кто сможет найти два делителя для чисел, которые она предлагала. Вот сравнительно легкий пример, который стоил 1000 долларов, вам предлагается найти два 50-значных делителя для числа: 15226050279225333605356183781326374 29718068114961380688657908494580 12296325895289765400350692006139 (перенесено).
Поделиться постом в социальных сетях: