Скорее всего там используется один из стандартных алгоритмов хеширования19.08.05 15:53 Число просмотров: 3380 Автор: amirul <Serge> Статус: The Elderman
Возникла такая вот проблема, имею блок информации (размер кратен 64 битам), зашифрованный алгоритмом DES-64. Имею почти точный его исходный вид. Точно таких же пакетов могу сделать еще сколько угодно (их делает софтина). Имею пароль, из которого генерируется ключ для криптования. Вопрос - как можно вычислить алгоритм получения ключа (64 бита) из пароля (n бит), при условии что есть исходная информация, закриптованая информация и пароль? Сие нужно для написания клиента к одному софтверному интерфейсу, где вся коммуникация шифруется алгоритмом DES. В API сказанно, что используется алгоритм DES, и все. Как получают ключ - не известно. Отладка с помощью IDA Pro и SoftIce ничего мне не сказала.
Скорее всего там используется один из стандартных алгоритмов хеширования19.08.05 15:53 Автор: amirul <Serge> Статус: The Elderman
> MDx, SHA-x и пр.. > > По крайней мере это наиболее часто используемая практика.
Я тоже так думал, но водь ведь дело, все эти MDx и SHA дают хеш куда более большой чем 64 бита. Там минимум у них 128. Разьве что используется половина хеша...
Скорее не образают, а ксорят две половины19.08.05 17:24 Автор: amirul <Serge> Статус: The Elderman
А может использоваться и потоковый шифр, напрмер RC4.
Key = RC4(Password, Text, Count). где Key - получаемый ключ, Password - введённый пароль, text - Любой текст который будет шифроваться (Например строка нулей), Count - длина последовательности для шифрования (в данном случае 64/8 = 8 - байт).
Ну это только предположение...