0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 21
1

Serpent Неправильные раундовые ключи

14.10.2014, 12:36. Показов 1135. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Можно ли у вас спросить, правильно ли я провожу расчет раундовых ключей в шифрований Serpent?

Допустим, если изначально ключ будет таким:

15FC0D48 D7F8199C BE399183 4D96F327 10000000 00000000 00000000 00000000
32бита 32бита 32бита 32бита 32бита 32бита 32бита 32бита
w-8 w-7 w-6 w-5 w-4 w-3 w-2 w-1

как мы видим, ключ неполный, расширим его до 256 бит. Так же пронумеруем их (w-8, минус (от минус 8 до минус 1)).

wi=(wi-8 xor wi-5 xor wi-3 xor wi-1 xor phi xor i)<<<11

Далее запустим функцию выбора подключей, где phi - это 9e3779b9, запустим от 0 до 131 для получения 33-х 128-битных ключей.

Проведем расчет от 0 до 4, чтобы получить, 1 из 33-х раундовых ключей (k0,k1,k2,k3)=S3(w0,w1,w2,w3) и так далее, до w131.

1) i=0

w0=w-8 xor w-5 xor w-3 xor w-1 xor 9e3779b9 xor 0<<<11=15FC0D48 xor 4D96F327 xor 00000000 xor 00000000 xor 9e3779b9 xor 0 <<<11=EC3EB632

2) i=1

w1=w-7 xor w-4 xor w-2 xor w0 xor 9e3779b9 xor 1<<<11=D7F8199C xor 10000000 xor 00000000 xor EC3EB632 xor 9e3779b9 xor 1<<<11=8EB0B5AF

3) i=2

w2=w-6 xor w-3 xor w-1 xor w1 xor 9e3779b9 xor 2<<<11=BE399183 xor 00000000 xor 00000000 xor 8EB0B5AF xor 9e3779b9 xor 2<<<11=F2ECBD75

4) i=3

w3=w-5 xor w-2 xor w0 xor w2 xor 9e3779b9 xor 3<<<11=4D96F327 xor 00000000 xor EC3EB632 xor F2ECBD75 xor 9e3779b9 xor 3<<<11=9C0ED66B

Для первого раундового ключа проведем его через 3-й SBOX:

S3(w0,w1,w2,w3)
EC3EB632
В бинарной записи:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11|10|11|00|00|11|11|10|10|11|01|10|00|11|00|10|
После перестановки в Sbox3:
11101010001111001110110001101100
EA3CEC6C

8EB0B5AF
В бинарной записи:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
10|00|11|10|10|11|00|00|10|11|01|01|10|10|11|11
После перестановки в Sbox3:
10110110101100101000111001001111
B6B28E4F

F2ECBD75
В бинарной записи:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11|11|00|10|11|10|11|00|10|11|11|01|01|11|01|01
После перестановки в Sbox3:
11010110011111101111001111001001
D67EF3C9

9C0ED66B
В бинарной записи:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
10|01|11|00|00|00|11|10|11|01|01|10|01|10|10|11
После перестановки в Sbox3:
10111011010111001001110001100010
BB5C9C62

В итоге мы имеем: EA3CEC6C B6B28E4F D67EF3C9 BB5C9C62

Первый ключ k0 должен быть 2958B648, у меня он EA3CEC6C после S3, и даже после IP он стал FAD796F1, что никак не сходиться с ответом. Может быть, я нарушил порядок нумерации, и w-8 - это самый крайний ключ, хотя везде написано, что начинаем нумерацию с w-8 до w-1. Пробовал проводить расчет вот так:

15FC0D48 D7F8199C BE399183 4D96F327 00000000 00000000 00000000 00000001
32бита 32бита 32бита 32бита 32бита 32бита 32бита 32бита
w-8 w-7 w-6 w-5 w-4 w-3 w-2 w-1

С ответом тоже не сошлось.

И даже если провести ключ w0,w1,w2,w3 через IP, то выходит

FAD796F1 A1F7DDB0 7D51EEB1 17C8762B

что не сходиться с ответами.

Не могли бы Вы, пожалуйста, сказать, в чем ошибка? Заранее Вам спасибо!


В Интернете отсутствуют какие-либо примеры тестовых векторов для всех стадий шифрования, есть только вектора PT/KEY/CT, тем самым невозможно сделать дебаггинг Расширения ключа.

Добавлено через 18 часов 27 минут
Почему везде так разниться информация, и нигде нету общего стандарта. То говорят что неполный ключ заполняется одним единичным битом в виде 0x80 далее 0x00, кто-то говорит что надо заполнять в видео 0x11. Но все равно правильного ответа не выходит. Пожалуйста, скажите сделал ли я расчет правильно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2014, 12:36
Ответы с готовыми решениями:

Ключи, ключи, ключики. нужен совет
Дорого времени суток. Народ помогите пожалуйста разобраться с проблемой ключей в 1С 8.3.6.2237....

Serpent - реализация
Все привет !!!... Может у когонибуть завалялась нормальная реализация этого алгоритма шифрования...

Алгоритм шифрования Serpent
Есть код алгоритма Serpent, но при запуске выдает ошибку: &quot;String subscript out of range&quot;. В силу...

Реализация алгоритма шифрования и дешифрования Serpent.
Помоги сделать!!! Реализация алгоритма шифрования и дешифрования Serpent.

0
14.10.2014, 12:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2014, 12:36
Помогаю со студенческими работами здесь

Алгоритм шифрования Serpent (перевод кода с Си на C++)
Помогите перевести код с Си на С++, разбираюсь в алгоритме шифрования Serpent и нужно перевести его...

Мод Hexen Serpent: Resurrection - секретный уровень
Привет! Игра, канешн, круть, из движка выжали по максимуму, даже полноценное три-дэ (без трюков с...

Где найти исходники алгоритма шифрования Serpent?
Блин неудобно конечно сразу приходить на форум со своими вопросами,но я просто не знаю уже кто мне...

Криптография: приведите пример шифрования алгоритма Serpent
Приведите пожалуйста пример шифрования алгоритма Serpent


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru