Символ для шифрования символов - PullRequest
0 голосов
/ 09 декабря 2011

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

из нашего исследования механизмов асимметричного шифрования, мы считаем, что символ для шифрования символов можетЭто не может быть достигнуто.

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

Ответы [ 4 ]

1 голос
/ 09 декабря 2011

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

RC4 может быть подходящим алгоритмом для вас.

Есть ли какая-то особая причина, по которой вы должны использовать шифрование символов для символов? Симметричные алгоритмы, такие как AES, обычно используют блоки небольшого размера, обычно 64 бита, поэтому маловероятно, что они потребуют много места. Если вы можете использовать симметричный блочный шифр, это может упростить вам задачу.

Я не уверен, что вы подразумеваете под «ключевым» решением. Все современные алгоритмы шифрования являются ключами, но природа ключа меняется в зависимости от алгоритма. Симметричные шифры обычно имеют общий секретный ключ, асимметричные алгоритмы используют открытые / закрытые ключи. Существуют различные потоковые шифры, которые используют любой тип ключа, согласно Руководству по прикладной криптографии .

Я также немного не уверен в том, что вы подразумеваете под "угрозой безопасности потери нашего ключа, она несущественна и является приемлемым риском". Если вы потеряете свой ключ, то у вас больше не будет шифрования (по крайней мере, пока вы не поверните ключи). Если шифрование неприемлемо, то зачем вам вообще шифрование? Если достаточно просто запутать данные, тогда это совсем другая проблема.

0 голосов
/ 09 декабря 2011

Хитрость заключается в том, чтобы преобразовать ваших персонажей в и из символов таким образом, чтобы вам не понадобилось больше символов для этого.Говоря математически, вы можете сделать это, если используете потоковый шифр (он выполняет 1: 1-битное шифрование).Единственное, что у вас остается один «частичный» бит, который может не подходить.Я создал такую ​​программу просто для удовольствия.Поскольку он основывался на огромных умножениях и делениях, я быстро обнаружил, что это было невыполнимо с точки зрения производительности.

Итак, в основном вам нужно что-то, что имеет алфавит из N символов, где N = 2 ^ x.В таком случае вам нужно только переключение передач и тому подобное.В качестве альтернативы, если у вас есть свободное место, вы можете посмотреть на текст и объединить поля, чтобы они стали ближе по размеру к N (любому N).

То, что вы делаете, это то, что вы отображаете свои поля в диапазон 0..N, помещаете это в число битов X, объединяете это вместе и шифруете потоком.Теперь у вас должно быть такое же количество битов.Затем вы отображаете результат обратно в исходный алфавит и сохраняете / отправляете его.

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

0 голосов
/ 09 декабря 2011

Для шифротекста той же длины, что и открытого текста, вам нужен либо потоковый шифр, либо блочный шифр в режиме CTR.Для потоковых шифров RC4 является обычным, но устаревшим.В портфолио eSTREAM Профиль 1 есть лучшие потоковые шифры.Для блочного шифра используйте AES в режиме CTR без заполнения.

0 голосов
/ 09 декабря 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...