Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
На keeloq похоже. 26.08.06 23:12 Число просмотров: 7296
Автор: RElf <M> Статус: Member Отредактировано 26.08.06 23:14 Количество правок: 1
|
На keeloq похоже.
Ковырял когда-то подобное, но до ума так и не довел.
|
<theory>
|
Помгите криптоаналитически разломать потоковый симметричный шифр с NLF 18.08.06 18:37
Автор: Flus Статус: Незарегистрированный пользователь
|
Все выглядит следующим образом есть 32битный регистр сдвига из самого старшего байта третьего берется два бита 6 и 1 из второго байтаберется 3ий бит из 1и0 байта берутся 0 биты тоесть всего берется 5 бит которые соответсвуют в таблице нелинейной функции 1биту тоесть из 5 бит по нелинейному закону рождают 1 бит
далее берется 7 бит 3байта XOR бит полученый NLF XOR бит 7из 1байта XOR бит из 64битного кода
полученное от ксора после сдвижки регистра дописывается в самый младший бит и так алгоритм крутится 528 раз после чего в сдвиговом регистре получается значение совершенно непохожее на точто загружали в начале алгоритм симетричный поетому получивееся значение можно прокрутить в обратную сторону но опять же зная код 64 битный.
Код находится в своем 64 битном регистре который тоже крутится.
Вопрос как узнать код любыми методами будь то корреляционные и прочие?
|
|
Дальше без знаков препинания не осилил. И вникать не буду... 11.12.06 20:18
Автор: lazy_anty Статус: Незарегистрированный пользователь
|
> Все выглядит следующим образом есть 32битный регистр сдвига > из самого старшего байта третьего берется два бита 6 и 1 из > второго байтаберется 3ий бит из 1и0 байта берутся 0 биты > тоесть всего берется 5 бит которые соответсвуют в таблице > нелинейной функции 1биту тоесть из 5 бит по нелинейному > закону рождают 1 бит > далее берется 7 бит 3байта XOR бит полученый NLF XOR бит > 7из 1байта XOR бит из 64битного кода Дальше без знаков препинания не осилил. И вникать не буду. Код пишете так же, всё в одну строку через пробел? ;)
|
|
Ну, стандартная балалайка. Надо функцию смотреть. Только вот... 10.12.06 23:41
Автор: MadBinom Статус: Незарегистрированный пользователь
|
Ну, стандартная балалайка. Надо функцию смотреть. Только вот этот регистр сдвига я понял, а вот входные и выходные данные какие?
|
|
Хотелось бы увидеть (псевдо-)код на C или другом языке... 22.08.06 06:56
Автор: RElf <M> Статус: Member Отредактировано 22.08.06 07:11 Количество правок: 1
|
Хотелось бы увидеть (псевдо-)код на C или другом языке высокого уровня. И тестовые примеры тоже.
|
| |
Пишите имейл или мне и все вышлю вот основное 25.08.06 21:20
Автор: Flus Статус: Незарегистрированный пользователь
|
> Хотелось бы увидеть (псевдо-)код на C или другом языке > высокого уровня. И тестовые примеры тоже. Пишите имейл или мне и все вышлю вот основное
void decrypt(void)
{
byte index;
int count;
byte table[32] = /* a lookup table */
{ 0,1,1,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,0 };
for(count=0; count < (528+48); count++)
{
if (count>=528) goto rotate_key; /* last 48 rotates restore the key */
index = 0;
ifbit (shfreg[0],0) setbit(index,0);
ifbit (shfreg[1],0) setbit(index,1);
ifbit (shfreg[2],3) setbit(index,2);
ifbit (shfreg[3],1) setbit(index,3);
ifbit (shfreg[3],6) setbit(index,4); /* prepare for lookup table */
//
carry = getbit(shfreg[1],7) XOR getbit(shfreg[3],7) XOR
getbit(keyreg[1],7) XOR table[index];
left_shift_carry(shfreg[0]); /* shift in the new bit */
left_shift_carry(shfreg[1]);
left_shift_carry(shfreg[2]);
left_shift_carry(shfreg[3]);
rotate_key:
carry = getbit(keyreg[7],7); /* get the leftmost key bit */
left_shift_carry(keyreg[0]);
left_shift_carry(keyreg[1]);
left_shift_carry(keyreg[2]);
left_shift_carry(keyreg[3]);
left_shift_carry(keyreg[4]);
left_shift_carry(keyreg[5]);
left_shift_carry(keyreg[6]);
left_shift_carry(keyreg[7]); /* left-rotate the 64-bit key */
/* the key is rotated 576 times, which is a multiple of 64 */
/* the key therefore remains unchanged */
}
index = 0;
ifbit (shfreg[0],0) setbit(index,0);
ifbit (shfreg[1],0) setbit(index,1);
ifbit (shfreg[2],3) setbit(index,2);
ifbit (shfreg[3],1) setbit(index,3);
ifbit (shfreg[3],6) setbit(index,4); /* prepare for lookup table */
carry = getbit(shfreg[1],7) XOR getbit(shfreg[3],7) XOR
getbit(keyreg[1],7) XOR table[index];
}
|
| | |
На keeloq похоже. 26.08.06 23:12
Автор: RElf <M> Статус: Member Отредактировано 26.08.06 23:14 Количество правок: 1
|
На keeloq похоже.
Ковырял когда-то подобное, но до ума так и не довел.
|
| | | |
Я тут тоже кое чего добился... 27.08.06 18:05
Автор: Flus Статус: Незарегистрированный пользователь
|
Да он самый.
До чего ты дошол?
Я добился следующего могу к примеру знать что (е6 нахожу хитро) е6= nlf xor 5
5 ето байт из кода который собств и ищем так вот теперь остается сделать востановл простого ксора что бы найти nlf и 5 что из низ что ето всего 2 варианта поетому непугают
но вот еслиб кто разъяснил методу как там делать ксор сдвигая ищя максим совпадения ?
Чтоб найти ети nlf и 5?
|
|
Сложновато вкуриваеццо... Если не секрет (да и людям может понятнее будет), не намекнёте, где используется сей криптоалгоритм? 18.08.06 20:50
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| |
Енто разработанно Нанотек где то в африке применяется в... 18.08.06 21:03
Автор: Flus Статус: Незарегистрированный пользователь
|
Енто разработанно Нанотек где то в африке применяется в системах безопасности для всего на что хватит фантазии из за относит простоты и скорости реализаци и неплохой защищенности
как бы тут картинку алгоритма выложить?
|
| | |
Тут никак картинку не выложить, давнишняя больная тема... На какой-нить файлообменник, и сюда ссылку запостить можно. 18.08.06 21:18
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | |
Кому интерестно пишите имейл я вышлю доки или пишите мне... 20.08.06 21:42
Автор: Flus Статус: Незарегистрированный пользователь
|
Кому интерестно пишите имейл я вышлю доки или пишите мне server65@list.ru
|
|
|