Режим TDEA и CBC? - PullRequest
       13

Режим TDEA и CBC?

0 голосов
/ 24 октября 2010

Я пытаюсь освоить схемы шифрования и TDEA (Triple DES). Я понимаю, что TDEA выглядит примерно так:

зашифрованный текст = EK3 (DK2 (EK1 (обычный текст)))

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

Это означает, что TDEA в режиме CBC будет работать примерно так:

Обычный текст -> IV -> Шифрование TDEA -> NEW IV -> Шифрованный текст

Следующий блок:

Обычный текст -> НОВЫЙ IV -> Шифрование TDEA -> НОВЫЙ НОВЫЙ IV -> Шифрованный текст

Это продолжается для n блоков. Это правильно или я не понимаю, как это работает?

1 Ответ

0 голосов
/ 24 октября 2010

Ваша концепция о том, как работает CBC кажется ошибочной (или, по крайней мере, я не понимаю, как вы говорите, что вы считаете, что все работает).В частности, вы показываете Plain Text -> IV, но IV * не зависит (каким-либо образом) от простого текста.

Используемый вами алгоритм шифрования в основном ортогонален тому, как CBCСам работает (за исключением того факта, что это для блочных шифров, а не потоковых шифров).В псевдокоде CBC выглядит примерно так:

block_t xor_block = IV;
write(xor_block);
for (int i=0; i<message_size; i++) {
    block_t data = xor(xor_block, message[i]);
    xor_block = encrypt(data);
    write(xor_block);
}
...