Что эта часть "E" делает в режиме CBC? - PullRequest
0 голосов
/ 02 ноября 2019

I did not understand E box

Мне нужно реализовать этот режим вручную в Java (DES) Что происходит в этом поле E (шифрование)?

Ответы [ 2 ]

4 голосов
/ 02 ноября 2019

Функция E - это блочный шифр DES:

  • с вводом ключа K - 64 бита, из которых 56 фактически используются (стрелка слева от E) и
  • в качестве второго ввода введите текстовый блок из 64 бит данных, так как размер блока составляет 64 бита (стрелка вверху E)
  • в качестве вывода снова 64-битный блокзашифрованный текст (стрелка внизу E)

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

Если у вас нет реализации блочного шифра DES, тогда вы можете использовать DES-ECB и вызывать его с помощью одного блока / 8 байт (не дополненных) данных за один раз.

И если это не доступно, вы можете использовать один блок шифрования в режиме CBC или CTR с IV, состоящим из 8 нулябайты, поскольку это сводится к одному и тому же (XOR блока данных с блоком из всех нулевых байтов, в конце концов, снова дает вам тот же блок данных).

0 голосов
/ 02 ноября 2019

Часть E - это шифрование блока с использованием алгоритма DES (в вашем случае) и ключа tke K , AES - этогораздо более безопасный алгоритм

...