Шифр - Cipher

Эдвард Ларссон «s руны шифра , напоминающий найти на Кенсингтоне Runestone . Также включает в себя runically неродственного Blackletter стиля письма и свинарник шифра .

В криптографии , A шифр (или Cypher ) представляет собой алгоритм для выполнения шифрования или дешифрований -a серии четко определенных шагов , которые могут быть затем в качестве процедуры. Альтернативный, менее распространенный термин - шифрование . Шифрование или кодирование означает преобразование информации в шифр или код. В общем, «шифр» является синонимом « кода », поскольку оба они представляют собой набор шагов, которые шифруют сообщение; однако в криптографии концепции различаются, особенно в классической криптографии .

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

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

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

Большинство современных шифров можно разделить на несколько категорий.

  • По тому, работают ли они с блоками символов обычно фиксированного размера ( блочные шифры ) или с непрерывным потоком символов ( потоковые шифры ).
  • В зависимости от того, используется ли один и тот же ключ для шифрования и дешифрования ( алгоритмы с симметричным ключом ) или для каждого из них используется другой ключ ( алгоритмы с асимметричным ключом ). Если алгоритм является симметричным, ключ должен быть известен получателю и отправителю и никому другому. Если алгоритм является асимметричным, ключ шифрования отличается от ключа дешифрования, но тесно связан с ним. Если один ключ не может быть выведен из другого, алгоритм асимметричного ключа имеет свойство открытого / закрытого ключа, и один из ключей может быть открыт без потери конфиденциальности.

Этимология

Римская система счисления была очень громоздкой, отчасти потому , что не было никакого понятия нуля. Арабская цифра система распространилась от арабского мира в Европу в средние века . В этот переходный период арабское слово, обозначающее ноль صفر ( sifr ), было принято в средневековой латыни как cifra , а затем в среднефранцузский язык как cifre . В конечном итоге это привело к английскому слову шифра (меньшинство написание шифровальщика ). Одна из теорий о том, как этот термин стал обозначать кодирование, заключается в том, что концепция нуля сбивала с толку европейцев, и поэтому этот термин стал обозначать сообщение или коммуникацию, которую нелегко понять.

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

По сравнению с кодами

В нетехническом использовании «(секретный) код » обычно означает «шифр». Однако в рамках технических обсуждений слова «код» и «шифр» относятся к двум различным концепциям. Коды работают на уровне смысла, то есть слова или фразы преобразуются во что-то еще, и такое разбиение на части обычно сокращает сообщение.

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

Другой пример - шифры целого слова, которые позволяют пользователю заменять целое слово символом или символом, во многом подобно тому, как японцы используют символы кандзи (японские) для дополнения своего языка. ex «Быстрая коричневая лиса перепрыгивает через ленивую собаку» превращается в «Быстрая коричневая прыгает 上 ленивая».

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

Исторически криптография была разделена на дихотомию кодов и шифров; а у кодирования была своя собственная терминология, аналогичная терминологии шифров: « кодирование , кодовый текст , декодирование » и так далее.

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

Типы

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

Исторический

Исторические ручные и бумажные шифры, использовавшиеся в прошлом, иногда называют классическими шифрами . Они включают простые шифры подстановки (например, ROT13 ) и шифры транспонирования (например, шифр Rail Fence ). Например, «ХОРОШАЯ СОБАКА» может быть зашифрована как «PLLX XLP», где «L» заменяет «O», «P» - «G» и «X» вместо «D» в сообщении. Перестановка букв «ХОРОШАЯ СОБАКА» может привести к «ДГОГДОО». Эти простые шифры и примеры легко взломать даже без пар открытый текст-зашифрованный текст.

Простые шифры были заменены полиалфавитными шифрами подстановки (такими как шифры Виженера ), которые изменили алфавит подстановки для каждой буквы. Например, «GOOD DOG» может быть зашифрован как «PLSX TWF», где «L», «S» и «W» заменяют «O». Даже при небольшом количестве известного или предполагаемого открытого текста простые полиалфавитные шифры замещения и шифры перестановки букв, разработанные для шифрования пером и бумагой, легко взломать. Тем не менее, можно создать надежную ручку и бумажный шифр на основе одноразового блокнота , но при этом сохраняются обычные недостатки одноразовых блокнотов .

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

Современный

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

По типу используемого ключа шифры делятся на:

В алгоритме с симметричным ключом (например, DES и AES ) отправитель и получатель должны иметь общий ключ, настроенный заранее и хранящийся в секрете от всех других сторон; отправитель использует этот ключ для шифрования, а получатель использует тот же ключ для дешифрования. Шифр Фейстеля использует комбинацию замещения и транспозицию методов. Большинство алгоритмов блочного шифрования основано на этой структуре. В алгоритме с асимметричным ключом (например, RSA ) есть два отдельных ключа: открытый ключ публикуется и позволяет любому отправителю выполнять шифрование, в то время как закрытый ключ хранится получателем в секрете и позволяет только этому человеку выполнить правильное дешифрование.

Шифры можно разделить на два типа по типу входных данных:

Размер ключа и уязвимость

При чисто математической атаке (то есть при отсутствии какой-либо другой информации, помогающей взломать шифр) важны прежде всего два фактора:

  • Доступная вычислительная мощность, т. Е. Вычислительная мощность, которая может быть использована для решения проблемы. Важно отметить, что средняя производительность / емкость одного компьютера - не единственный фактор, который следует учитывать. Злоумышленник может использовать несколько компьютеров одновременно, например, для существенного увеличения скорости исчерпывающего поиска ключа (т. Е. Атаки методом «грубой силы»).
  • Размер ключа , т. Е. Размер ключа, используемого для шифрования сообщения. По мере увеличения размера ключа сложность исчерпывающего поиска возрастает до такой степени, что становится непрактичным взламывать шифрование напрямую.

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

Пример этого процесса можно найти в Key Length, который использует несколько отчетов, чтобы предположить, что симметричный шифр с 128 битами , асимметричный шифр с 3072-битными ключами и шифр с эллиптической кривой с 512 битами в настоящее время имеют схожие трудности.

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

Смотрите также

Примечания

использованная литература

внешние ссылки