2014-11-18 6 views
0

Я хочу знать, зашифрованы ли данные, хранящиеся в зашифрованном виде, блочным шифрованием или потоковым шифром?Блокировка или потоковое шифрование?

У меня есть зашифрованные данные, как я могу проверить, что он исходит из блока или потокового шифрования?

ответ

1

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

Все стандартные современные блок-шифры (AES, Blowfish, DES, Serpent, Twofish) имеют размеры блоков либо 64, либо 128 бит (соответственно 8 и 16 байт). Таким образом, если длина зашифрованных данных в байтах кратна 8, это, скорее всего, будет блочным шифрованием (у вас есть вероятность ошибки в 1 из 8). если он не кратен 8, вы можете быть уверены, что это не блочный шифр в режимах общего блока (в лучшем случае это блочный шифр, пытающийся эмулировать потоковый шифр, например, в режиме CFB).

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

+0

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

+0

Спасибо! У меня есть ситуация, когда данные зашифрованного и открытого текста + VZyZlAHP6HAgoaPBrBz (зашифрованные) 378734493671000 (открытый текст) Любое предположение, какой метод шифрования используется (блок/поток)? – bhartay

+0

@bhartay Тот факт, что зашифрованный текст имеет одинаковый размер открытого текста * и * длина 15, показывает нам, что это, несомненно, шифр потока (или блок-шифр, используемый в потоковом режиме, например, CFB, OFB или CTR) – goncalopp