Рейтинг:0

Шифрование с использованием ASCII вместо битов и байтов (уточнение в теле)

флаг th

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

Может ли все, что может быть закодировано другими методами кодирования (такими как использование двоичного кода, битов и байтов или Unicode), также кодироваться с помощью ASCII?

Заранее благодарю тех, кто любезно ответит на мой вопрос.

fgrieu avatar
флаг ng
Пожалуйста, уточните или закройте вопрос! Во втором абзаце грамматическая ошибка ("Может все, что..есть."); имеет "другие методы шифрования" без ссылки на другое шифрование; и использует "зашифровано с помощью ASCII", когда кодирование ничего не делает. Возможно, нам следует прочитать: "Может ли все (что может быть зашифровано) альтернативно быть зашифровано _в_ ASCII»? Ответ на это — однозначное «да», и это обычная практика. Один из самых известных — перекодирование зашифрованного текста, созданного каким-либо общедоступным методом шифрования, в ASCII, например, с использованием [Base64] (https://en.wikipedia. org/wiki/Base64).
Fenrir avatar
флаг th
Привет, я очень ценю твой ответ. Извините, что не смог ясно выразиться. Я пытался спросить: «Может ли все (что может быть зашифровано) быть альтернативно зашифровано в ASCII»?» и вы уже ответили на него. Кроме того, спасибо, что сначала предупредили меня, а не сообщили напрямую.
Рейтинг:0
флаг my

Когда строка типа «Hello World» зашифрована, алгоритмы преобразуют эту строку в двоичный код или ASCII?

Ну, ответ зависит от того, говорите ли вы об исторической или современной криптографии.

Исторически сложилось так, что методы шифрования обычно принимали строку как набор символов и преобразовывали их таким образом. Иногда они выполняли внутреннее сопоставление, скажем, «A» -> 0, «B» -> 1 и т. д., однако обычно это делалось внутри алгоритма. Как правило, они не преобразовывали символы в двоичные (что в то время считалось бы странным выбором) и уж точно не в ASCII (которого тогда не существовало).

С другой стороны, современные алгоритмы шифрования обычно [1] принимают строки битов или байтов в качестве входных данных и генерируют строки битов или байтов в качестве выходных данных. Чтобы зашифровать строку, вы должны преобразовать ее в такую ​​строку (будь то с использованием ASCII, Unicode или EBCDIC, алгоритму все равно), и алгоритм работал над этим.

Кроме того, если это файл, можно ли использовать ASCII для шифрования данных?

Что ж, файл символов ASCII можно рассматривать как строку байтов, поэтому современные алгоритмы шифрования прекрасно с этим справятся.

[1]: Одно исключение: схемы шифрования с сохранением формата, которые обычно рассматривают ввод как основу.$b$ строка, где $b$ не может быть степенью двойки.

Fenrir avatar
флаг th
Я действительно благодарю вас за любезный ответ на мой вопрос, но у меня есть еще один вопрос. Если мы можем преобразовать что-то в строку байтов, мы также можем преобразовать это в ASCII, верно? Итак, все, что можно зашифровать другими методами, можно зашифровать и с помощью ASCII, верно? Хотя в таком случае было бы разумно подумать об эффективности и оптимизации.
poncho avatar
флаг my
ASCII — это просто способ преобразования различных символов (и элементов управления) в значения от 0 до 127 (или от 0 до 255, если вы используете «расширенный ASCII»). Если мы предположим, что строка, которую мы даем крипто, является «расширенным ASCII», ну, да (при условии, что длина строки кратна 8 битам - обычно это так); однако неясно, какое преимущество это дает нам.
Рейтинг:0
флаг si

ASCII — это кодировка, а не метод шифрования. ASCII преобразует определенные символы (английский алфавит, некоторые символы и некоторые непечатаемые управляющие символы, такие как «табуляция» или «перевод строки») в 7-битные двоичные значения. Обычно это делается путем кодирования каждого символа ASCII в один 8-битный байт и установки старшего бита этого байта в 0.

Некоторые древние компьютерные системы (в основном найденные только в музеях или в коллекциях энтузиастов ретрокомпьютеров) не поддерживали ASCII или 8-битные байты и вместо этого кодировали данные по-другому. Например, мейнфрейм IBM 1401 1959 года кодировал данные, используя 6-битные символы в специальной двоично-десятичной схеме. На самом деле это представляет только исторический интерес.

Современные компьютерные системы в основном не используют ASCII, а вместо этого используют Unicode, часто в кодировке UTF-8. Здесь также используются 8-битные байты, но старший бит не обязательно должен быть равен 0.

Любой метод шифрования, работающий с байтами, может работать и с данными ASCII, поскольку данные ASCII состоят из байтов.

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

Таким образом, все, что может быть зашифровано другими (современными, безопасными) методами шифрования, также может быть зашифровано методом, который принимает только символы ASCII.

Рейтинг:0
флаг ng

Можно ли альтернативно зашифровать все (что может быть зашифровано) в ASCII?

Да. И это обычная практика. Общий метод заключается в шифровании, которое для большинства современных шифров выводит явно случайные биты, которые можно назвать «двоичными». Затем перекодируйте это в ASCII, например. с использованием Base64. Это встроено в некоторые программы шифрования, такие как PGP/GPG, которые называют ASCII-броня.

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

Такое кодирование увеличивает размер. С коэффициентом $2$ для шестнадцатеричного (который кодирует 4 бита в 1 символ, а затем представляется как 8 бит), $4/3\ок.1,33$ для Base64 (который кодирует 24 бита в 4 символа, а затем представляется как 32 бита). По этой причине, а также потому, что любое изменение формата связано с нетривиальными вычислительными затратами, оно обычно не используется для больших полезных нагрузок, таких как видео.

Ответить или комментировать

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