2014-01-07 9 views
0

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

На https://litecoin.info/Block_hashing_algorithm автор получает результат шифрования Scrypt для headerString:

01000000ae178934851bfa0e83ccb6a3fc4bfddff3641e104b6c4680c31509074e699be2bd672d8 d2199ef37a59678f92443083e3b85edef8b45c71759371f823bab59a97126614f44d5001d45920180 [маленький обратный порядок байт]

к

000000003b4ba52ab765631e20a04b88cd27f0b66d3509fb2da7781fae6d7901. [big endian]

Я пытаюсь воспроизвести это, но я не смог воспроизвести этот результат. Я использую реализацию, которая дает правильный результат для тестовых векторов в конце этой статьи: http://www.tarsnap.com/scrypt/scrypt.pdf, но при запуске headerString через него с правильными настройками для N, r, p (1024,1,1) я получаю

c17fcd0c6d698828112ade740d4e8ad76705764da3abfc49ff3bb1863cd16472. [Большой обратный порядок байт]

Я попробовал его с тем же результатом этих реализаций с тем же результатом как:

data = "01000000ae178934851bfa0e83ccb6a3fc4bfddff3641e104b6c4680c31509074e699be2bd672d8 d2199ef37a59678f92443083e3b85edef8b45c71759371f823bab59a97126614f44d5001d45920180"; 

    https://github.com/cheongwy/node-scrypt-js 
var result = scrypt(data,data, 1024,1,1,32); 

    https://github.com/tonyg/js-scrypt 
var result = scrypt.crypto_scrypt(scrypt.encode_utf8(data), scrypt.encode_utf8(data), 1024, 1, 1, 32); 

Im после им Scrypt вызова только разборе массив байтов в шестнадцатеричной строки, если это необходимо

Я что-то пропустил? Я просто не могу понять, почему я не получаю такой же результат, когда я подтвердил свою версию scrypt против бумаги об этом.

Мне очень нужна помощь в решении этого! Если я не предоставил достаточно информации, пожалуйста, спросите, и я стараюсь изо всех сил расчистить ситуацию.

+1

Никто не знает, что вы делаете неправильно из информации, которую вы нам даете. Какую реализацию scrypt вы используете? Использование 4 тестовых векторов, конечно, недостаточно, чтобы найти все возможные ошибки реализации. Также вы можете показать нам свой вызов функции scrypt? – example

+0

Спасибо за ответ! Я добавил реализации, которые тестировали, и вызов, который я выполняю для функций scrypt. Надеюсь, это поможет. – Sultanen

+1

вы вводите свои данные в виде массива символов, в то время как его следует интерпретировать как число (в шестнадцатеричном представлении) – example

ответ

1

вы вводите свои данные в виде массива символов, в то время как его следует интерпретировать как число (в шестнадцатеричном представлении).