Как расшифровать HEX-буфер с помощью RC4? - PullRequest
0 голосов
/ 08 апреля 2020

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

const crypto = require('crypto');

const buffer = Buffer.from('471b...', 'hex');

const decipher = crypto.createDecipheriv('rc4', 'MyKey', '');
let decrypted = '';
decrypted += decipher.update(buffer, 'hex', 'utf8');
decrypted += decipher.final('utf8');

console.log(decrypted) // outputs stuff like "�Y6�k�"

Действительно ли мой шестнадцатеричный буфер зашифрован в RC4 и / или мой ключ верно?

1 Ответ

0 голосов
/ 08 апреля 2020

Мы не можем сказать. Алгоритм или ключ, вероятно, не верны, если входное сообщение было двоичным, а не текстовым, потому что оно не похоже ни на одну из известных кодировок символов.

Зашифрованный текст неотличим от случайного, что делает обнаружение современного шифра очень трудно (вдвойне потому, что вы пропустили большую часть зашифрованного текста). RC4, однако, можно отличить, но вам нужна сложная атака, чтобы отличить guish от случайного шума; это, вероятно, также идентифицирует шифр, даже не зная ключа.

Кроме того, RC4 может быть инициализирован практически с любым размером ключа. Меньшие размеры ключей могут быть относительно легкими для грубой силы - хотя большие размеры ключей могут длиться вечно (буквально, чтобы выжить после смерти вселенной).

Итак, ответы коротко:

  • RC4 - не знаю;
  • ключ правильный - возможно, нет.

Кстати: распечатайте открытый текст в шестнадцатеричном формате, если вы хотите проверить, имеет ли это смысл или нет. ASCII легко различить guish таким образом, но другие схемы также могут показывать шаблон в двоичном формате, который вы не сможете увидеть, если вы просто получите ромб с вопросительным знаком в нем (или любой другой символ замены, хотя некоторые шрифты / терминалы на самом деле отображают шестнадцатеричное значение внутри шрифта, что приятно).

...