| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
|  |  | Пишите имейл или мне и все вышлю вот основное  25.08.06 21:20  Число просмотров: 7824 Автор: 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];
 
 
 
 }
 
 |  | <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 |  
 
 
 |  |