2015-05-13 1 views
-1

Я только что написанного моя собственная (простая) шифрования и дешифрования функции ...Как скрыть длину строки расшифрованной после шифрования

function MyEncrypt(const AValue : string; const AKey : string) : string; 
begin 
    Result := //encryption 
end; 

function MyDecrypt(const AValue : string; const AKey : string) : string; 
begin 
    Result := //decryption 
end; 

... и у меня есть некоторые сомнения относительно того, как чтобы скрыть количество символов расшифрованной строки.

В качестве примера ... Предположив, что расшифрованные строка hello world, то зашифрованная строка что-то вроде abcdefghijk. Чтение зашифрованной строки, ясно, что расшифрованная строка состоит из 11 символов.

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

Ссылаясь на предыдущий пример, используя номер 16, зашифрованная строка abcdefghijk будет abcdefghijklmnop.

Есть ли стандарт для такого рода вещей или я должен думать о чем-то новом?

+1

Речь идет не о программировании. Возможно, вам повезло больше на http://crypto.stackexchange.com/ – Greg

+0

Подумайте об этом; как бы вы различали сигнал и дополнение для дешифрования снова? – jonrsharpe

+0

@jonrsharpe: Я мог бы добавить длину прокладки. (Очевидно, что и Crypted). Во всяком случае, моя - всего лишь проектная идея, я спрашиваю о других идеях или стандартах, если они есть. – Hwau

ответ

0

Перед тем, как зашифровать его, добавьте съемную прокладку в конец вашего файла открытого текста. Удалите заполнение после дешифрования. Существуют различные различные схемы заполнения. Изучите и выберите тот, который соответствует вашим потребностям. Обратите внимание, что многие стандартные схемы, такие как PKCS # 7, основаны на байтах, а не на символах. Возможно, вам придется адаптировать схему для использования символов. Например, вы можете добавить «1000 ... 000» с переменным числом «0» символов. На дешифровке удалите все конечные нули и «1».