как изменить размер строки [группа чисел и символ]? - PullRequest
0 голосов
/ 21 апреля 2011

Добрый день всем, я работаю над шифрованием и дешифрованием rsa, для большей безопасности я также использую заполнение в зашифрованном тексте, для другого ввода (amit), я получаю вывод различной длины, например: *

plain text- amit     
cipher text-10001123A234A987A765A

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

Ответы [ 4 ]

1 голос
/ 21 апреля 2011

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

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

0 голосов
/ 21 апреля 2011

эм ... Вы написали здесь в комментарии, что применяете шифрование RSA ко всем отдельным символам:

я использую rsa - он выполняет числа для преобразования amit в зашифрованный текст сначала я делаю-> 97 м-> 109 я-> 105..и затем применить RSA более 97, 109 ... тогда я получить разные целые числа для 109, 105 или ... я присоединился к этому как строка ...

хороший совет: не делайте этого , так как вы потеряете безопасность RSA

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

см. RSAES-OAEP для схемы заполнения, применяемой к вашему тексту перед шифрованием

0 голосов
/ 21 апреля 2011

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

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

И, следовательно, пытаться сжимать зашифрованные данные бесполезно.

Примечание : в зависимости от метода шифрования сжатие может быть возможным, например, при использовании блочного шифра в режиме EBC .Хотя RSA - это совершенно другой зверь, и, конечно же, сжатие ничего не изменит (кроме того, что, возможно, увеличит ваш конечный результат).

[Edit] Кроме того, длинаВаш зашифрованный текст RSA будет иметь порядок log nn вашим публичным модулем.По этой причине, особенно для небольших открытых текстов, криптография с открытым ключом является чрезвычайно «расточительной».Обычно вы используете RSA для настройки (меньшего, например, 128-битного) симметричного ключа между двумя сторонами, а затем шифруете свои данные с помощью алгоритма симметричного ключа, такого как AES.AES имеет размер блока 128 битов, поэтому, если вы выполняете прямое шифрование ваших данных, максимальные «накладные расходы», которые вы понесете, составят length(message) mod 128 бит.

0 голосов
/ 21 апреля 2011

Есть несколько возможностей:

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