новый шифр на слом

Тема в разделе "WASM.CRYPTO", создана пользователем RElf, 12 сен 2007.

  1. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    A vot i nepravda. Na perviy vzgliad trivialno lomayetsa ne zavisimo ot kolichestva krugov pri pomoschi slide attacks blagodaria self-similarity yego round function. Dazhe takoi:

    Код (Text):
    1. void encrypt(unsigned *a, unsigned *b)
    2. {
    3.     unsigned v0, v1, t;
    4.     int n;
    5.  
    6.     v0 = *a; v1 = *b;
    7.  
    8.     for (n = 0; n < 1024; n++)
    9.     {
    10.         v0 += (v1 >> 3) + k0;
    11.         v1 += (v0 << 5) + k1;
    12.         t = v0, v0 = v1, v1 = t;
    13.     }
    14.  
    15.     *a = v0; *b = v1;
    16. }
    Kstati, dazhe yesli dobavit + n chtobi ubrat self-similarity, to etomu shifru nado 20 krugov tolko chtobi perestat zavalivat moi testi - 2^16 chosen plaintexts trivialno otlichayutsa ot random yesli menshe 20 krugov. Tak zhe legko s temi zhe chosen plaintexts vosstanavlivayetsa kluch yesli menshe 60 krugov pri pomoschi linear ili differential attacks. 60 i bolshe - eto uzhe tolko adaptive attacks. Eto znachit chto menshe 80 krugov luchshe dazhe ne nadeyatsa na security protiv adaptive attacks.

    Vobschem, vot ispravlenniy cipher:

    Код (Text):
    1. void encrypt(unsigned *a, unsigned *b)
    2. {
    3.     unsigned v0, v1, t;
    4.     int n;
    5.  
    6.     v0 = *a; v1 = *b;
    7.  
    8.     for (n = 0; n < 68; n++)
    9.     {
    10.         v0 += (v1 >> 8) + k0 + n;
    11.         v1 += (v0 << 6) + k1;
    12.         t = v0, v0 = v1, v1 = t;
    13.     }
    14.  
    15.     *a = v0; *b = v1;
    16. }
    Vot eto uzhe ne lomayetsa bistreye chem parallel brute-force nikak. Chem-to napominayet moi RTEA. S etimi sdvigami (>> 8 i << 6) yemu nado 17 krugov chtobi moi testi proiti - eto na tri kruga bistreye chem >> 3 i << 5. Poetomu 68 krugov dostatochno. No 64-bit keys - eto vsio ravno malovato...

    Ruptor

    PS: ispravil opechatku :)
     
  2. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Ruptor
    А что скажешь о таком варианте TEA с 128 битным блоком и ключем?

    Код (Text):
    1. for (i = 0; i < 64; i++)
    2.         {
    3.             sm += 0x4F1BBCDC;
    4.             v0 += ((v1 << 4) + k0) ^ (v2 + sm) ^ ((v1 >> 5) + k1);
    5.             v1 += ((v0 << 4) + k2) ^ (v3 + sm) ^ ((v0 >> 5) + k3);         
    6.             v2 += ((v3 << 4) + k0) ^ (v0 + sm) ^ ((v3 >> 5) + k3);
    7.             v3 += ((v2 << 4) + k2) ^ (v1 + sm) ^ ((v2 >> 5) + k1);
    8.         }
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    hwegh
    я тоже ламер........
    насчёт твоего алгоса (первого) есть идея:
    v0[3]-v0[1]==delta1
    v0[3]-v0[1]==delta2
    v0[3]-v[2]==delta3
    решив эту систему мы получим значения: v0[3]-k0; v0[2]-k0; v0[1]-k0.
    по сути дела мы имеем дело с системой линейных модульных уравнений. и ключ легко находится без плейнтекста.
    насчёт своего алгоса: его и врямь можно сломать без плейнтекста. подбираем k2 и на каждой итерации обрабатываем цепочку как обычный ксор.
     
  4. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    21 rounds prohodiat vse moi testi. Eto znachit chto menshe 63 krugov slomayut obichnimi chosen plaintext atakami, a menshe 84 - s pomoschyu adaptive attacks (i v dannom sluchaye menshe 80 krugov dazhe ne budut ispolzovat related keys). V tvoyom variante 256 krugov. Eto slishkom mnogo. Net smisla. Yesli pomeniayesh sdvigi s 4-5 na 6-9, togda stoikost povishayetsa i mozhno 76 krugov togda recomendovat. Function silnaya, ne sipetsa, oshibok net.

    Hotia ya bi predlozhil takoye besplatnoye uskoreniye diffusion:

    Код (Text):
    1. for (i = 0; i < 15; i++)
    2.         {
    3.             sm += 0x4F1BBCDC;
    4.             v0 += ((v1 << 6) + k0) ^ (v2 + sm) ^ ((v3 >> 9) + k1);
    5.             v1 += ((v0 << 6) + k2) ^ (v3 + sm) ^ ((v2 >> 9) + k3);         
    6.             v2 += ((v3 << 6) + k0) ^ (v0 + sm) ^ ((v1 >> 9) + k3);
    7.             v3 += ((v2 << 6) + k2) ^ (v1 + sm) ^ ((v0 >> 9) + k1);
    8.         }
    15*4=60 krugov togda vpolne hvatayet.

    Ruptor

    PS: Etot zhe cipher v odnu stroku:

    Код (Text):
    1. for (r=0,s=0;r<60;r++) s=((r&3)==0)?s+0x4F1BBCDC:s,x[r&3]+=((x[(r^1)&3]<<6)+k[(r&1)*2])^(x[(r+2)&3]+s)^((x[(r^3)&3]>>9)+k[(((r&1)*2)^(r&2))+1]);
    (ispravil opechatki)
     
  5. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Vot vse samiye stoikiye varianti sdvigov dlia etogo shifra: 5-8, 5-10, 5-11, 6-9, 6-10, 6-11, 6-12, 7-10. Iz nih samiye samiye stoikiye - 6-9, 6-10, 6-11. Iz nih 6-10 samiy samiy samiy stoikiy (neznachitelno luchshe chem 6-9), no 6-9 krasiveye i legche zapominayetsa, a kolichestvo krugov vsio ravno odinakovoye.

    Ruptor
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    вообще, мой алгос и первый алгос hwegh относятся к одному классу, они могут быть взломаны без плейнтекста, даже если исх. данные - это массив случайных чисел........:))
     
  7. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    LOL :)
     
  8. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Чистый и не омраченный искрой разума бред. Ни один симметрик (если он не содержит избыточности) не может быть взломан без плейнтекста при случайных числах на входе. Даже простой ксор с байтом не может быть взломан при таких условиях.
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    flankerx
    hwegh
    с чего это вдруг такое недоверие, ребята:)))
    класс, о коем я говорю: c=f(...)+key, f(...) - любая функа преобразования. заметим, что её результат=< модуля, надеюсь, чему равен модуль, в данном случае, вам объяснять не надо. итак, отвлечёмся от нашей первоначальной цели получить текст - в итоге шифровка выглядит так: c=x+key; едем дальше:
    x[2]-x[1]==delta1
    x[2]+key==c[2] (c[2]+N)
    x[1]+key==c[1] (c[1]+N)
    одна из четырёх возможных систем урав даст нам ключ - это очевидно даже для такого ламера, как я......:))
    flankerx
    почему ты не следуешь своим советам, Гуру: ".......ключ /brain: on"???:)))
    hwegh
    прально: твой алгос хуже ксора:)) а для случайного массива нам нужен будет тока его хэш или немного плейнтекста:)), а так в верности дешифровки можно быть уверенным на 25%;))
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    точней c==(x+key) mod N, так что вариантов перебора чуть больше.......
     
  11. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    UbIvItS Ацки жжошь!
    [утирая слезу] С времен твоих фантазий касательно изобретения нового "алгоса" факторизации ничего не изменилось - ты все так же отжигаешь...
     
  12. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Ладно, давай я выкладываю 100кб шифртекста и плейнтекста, и ты мне получишь ключ. Либо не..й п..деть.
     
  13. Dmit

    Dmit New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2004
    Сообщения:
    17
    Адрес:
    Russia
    Да чего мелочиться - твой алгоритм, наравне с признанными криптографическим сообщесивом алгоритмами, отностися к классу c = f (p, k)

    Если про данные что-то известно - не стоит использовать слово "случайный".

    А так же, если не хочется, чтобы тебя окончательно перестали воспринимать всерьез, не стоит использовать классические приемы полемики:
    - переходить на личности;
    - отвечать не на поставленный вопрос а на тот, ответ на который даст тебе преимущества, или вообще игнорировать вопросы, на которые не можешь ответить;
    - давать неполную информацию, оставляя себе пространство для маневра;
    - подменять свои же ранние утверждения или условия задачи, не заботясь о том, что они в корне меняют суть проблемы;
    и т.п.
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    CreatorCray
    докажи.........
    ты немного искажаешь историю.......:))
    A. я не говорил, что метода ломает всё.
    Б. я просил объяснить классы уязвимых для дипа чисел.
    и, вообще (возвращаясь к шифру hwegh) ты что не согласен с равенством (a+b) mod N-(a+c) mod N== (b-c) mod N:))???
    hwegh
    дафай мне шифротекст и прогу криптор/декриптор:)) хотя, забавно: ты читаешь мои топики или занимаешься тренировкой чтения с закрытыми глазами:) - сам мог бы попробовать:))
     
  15. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Посмотри кто есть топикстартер прежде, чем утверждать что это ты =)
     
  16. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    Dmit
    Боюсь полезные советы малось припоздали... Впрочем все равно не помогли бы

    UbIvItS
    Доказать что? Что ты аццки жжошь? :)))

    Пока ты сам не поймешь что писал ахинею, тебе что либо доказать невозможно.
     
  17. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    UbIvItS
    Держи файл с кодом криптора и 100кб шифртекста. Так как ты удтверждаешь что для вскрытия достаточно хеша плейнтекста, то я дам тебе только его. MD5 от плейнтекста = 6e2cfed8adef17b28b35f1b161e25f62
    Для особо непонятливых разьясню, что для дешифрования вызов encrypt надо поменять на decrypt, а ключ прописать в k0 и k1, а то вдруг ты сам не догадаешся.
    Ждем от тебя код находящий ключ, либо иным образом восстанавливающий плейнтекст. Полный брутфорс 64х бит за решение не принимается.
    Я считаю что с тобой неочем говорить пока ты не подтвердишь свои слова делом.

    http://rapidshare.com/files/63205213/crypt.rar.html
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    CreatorCray
    мда...... мог бы не стебаться:)), а сразу сказать, что матрица вырожденная:))) =========>> метода слома дауновая.......
     
  19. ftre

    ftre New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2007
    Сообщения:
    34
    UbIvItS
    Ну че, не ломается шифр который "хуже ксора"? Криптоаналитик хренов.
     
  20. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    ftre
    экий ты вежливый чел, однако:)). поиск новых идей связан с перебором мегатон ереси, ну, случилась ошибка у меня:)) - не ошибается тот, кто ничего не делает:)) а ты ошибаешься......???:)))
    короче, удачи тебе неизвестный критик:))
    hwegh
    твой алгос всё же можно подвздеть: статистика строк в восемь байт остаётся той же самой - для текстов на евро языках -это плохо. но эта беда просто решается, если внедрить динамику ключа. я рабочие алгосы только с динамикой пишу. тогда даже шифр: c=t+key становится устойчивым.