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

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

  1. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    UbIvItS
    Раз ты у нас такой спец по крипто, держи шифр на слом. Может и осилишь.

    Код (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 < 16; n++)
    9.     {
    10.         v0 += (v1 >> 3) + k0;
    11.         v1 += (v0 << 5) + k1;
    12.  
    13.         t = v1; v1 = v0; v0 = t;
    14.     }  
    15.  
    16.     *a = v0; *b = v1;
    17. }
    18.  
    19. void decrypt(unsigned *a, unsigned *b)
    20. {
    21.     unsigned v0, v1, t;
    22.     int n;
    23.  
    24.     v0 = *a; v1 = *b;
    25.  
    26.     for (n = 0; n < 16; n++)
    27.     {
    28.         t = v1; v1 = v0; v0 = t;
    29.  
    30.         v1 -= (v0 << 5) + k1;
    31.         v0 -= (v1 >> 3) + k0;      
    32.     }  
    33.  
    34.     *a = v0; *b = v1;
    35. }
    Это блочный шифр. Длина блока 64 бита, длина ключа 64 бита. Архитектура - сеть Файстеля.
    В качестве решения принимаются любые атаки со сложностью менее 2^64 при требуемом количестве плейнтекста менее 2^32
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    hwegh
    дай свою почту - файл скину......
    за алгос спасибо, подумаю
    flankerx
    несколько позже я тебе дам трудный шифр, если хочешь, конечно....
    кодирвка одна и таже.
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    hwegh
    кстати, я не понял в твоём алгосе: где ключ и где текст?
     
  4. flankerx

    flankerx New Member

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

    Перепроверь. И сравни hex-представления файлов. И научись публично признавать собственные ошибки.

    RTFM про сети Фейстеля — многое прояснится. Ну или просто прочитать листинг с ключом /brain:on.
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    flankerx
    кстати, покажи мне более умную реализацию, если можешь............
    то, что показал hwegh, слабо: имеет сложность O(2^2*N), где N - длинна блока(в нашем случае 8 бит); достачно рассматривать ключ на 128 байт, как массив 4-х байтовых блоков и перебор станет нереален.
     
  6. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    То, что показал hwegh, ломает твой "шифр" полностью.

    Я утверждаю что твой "шифр" можно сломать без plaintext'а вообще — при условии что известен язык сообщения.

    Можно много рассуждать и фантазировать. Ты убеждал нас что твой алгоритм надежный — мы продемонстрировали обратное. Теперь ты убеждвешь нас в том, что твой алгоритм _можно_ сделать надежным. Наверное, можно. Например, если превратить его в AES :)

    А зачем? Эта вполне работает и проста в реализации.

    Ты сам-то понял что написал? :)
    Сложность имеющегося алгоритма — O(2^N), гениальный ты наш. Если бы алгоритм имел квадратичную от длины сложность, то тебе никакое увеличение длины блока не помогло бы, хотя ты этого и не понимаешь.

    UPD: цитируется исходный пост товарища, ныне поправленный без changelog'а :)
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    ошибся:))
    точней O(2^2*N) :))
    ты путаешь фантазию с математикой:))
    давай немного изменим алгос и попробуем :)) - N будет равно 4 байта?:))
    а насчёт 2^1024 - подставь N==64:))
    никоим образом не могу себя так назвать, так как видел действительно Гения, а я так просто присел погреться.........:)))
     
  8. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Это ты путаешь словоблудие с криптографией :)

    Т.е. ты готов оплачивать моё время? Ну что ж, выкладывай исходный текст, шифртектс и код шифрования. Только без приколов с кодировкой.
     
  9. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Вход функций - a, b. Это указатели на дворды содержащие данные. k0 и k1 это дворды содержащие ключ.
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    ты называешь изменение массива char на массив int и ещё пару строк в коде фантазией(???), тогда прям и не знаю, что сказать...........:))
    от тебя я только и вижу какой ты высокооплачиваемый Гуру:))
    hwegh
    спасибо за пояснение. кстати, твоя задача имеет офиц. решение или ты в поисках героя????
     
  11. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Я просто нафигачил первое что пришло в голову.

    UbIvItS
    В случае твоего шифра можно подбирать только один ключ.
    Пусть С - шифртекст, M - playntext, k1 и k2 - ключи, тогда

    c = (m xor k1) + k2
    k1 = (c - k2) xor m
    k2 = c - (k1 xor m)

    Так что подбираем один из ключей, а второй вычисляем.
     
  12. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Если честно, я даже не зна как это назвать. Ты предложил самое очевидное решение, которое в какой-то мере обезопасит твой "шифр" от предложенной атаки, да. Стал ли шифр от этого надежнее? Не уверен. Попробовал ли ты сам сломать его до того, как предлагать это здесь? Нет. Это все очень-очень грустно.
    Если ты почитаешь тематические конференции, то увидишь, что с определенной периодичностью там появляются личности, утвержадющие что они изобрели невзламываемый шифр, алгоритм факторизации работающий за линейоне время, или архиватор, который гарантированно ужмет данную последовательность хотя бы на один бит. Эти личности заканчивают точно там же, откуда и и пришли - в неизвестности.
    В твоих сообщениях просматриваются некоторые типичные признаки этого, но вроде еще не все потеряно. Серьезно — поизучай хорошие книжки по криптографии, там много правильных вещей написано. Например, там написано что создать надежный шифр крайне сложно.

    А мне вот стало интересно, зачем нужен симметричный алгоритм с длиной ключа 1024 бита? Не конкретно этот, а вообще. А, UbIvItS?
     
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    hwegh
    да вычисляемый - только верность k2 зависит от верности k1.
    ----------------------------------------------------------------------------------
    ты упрекаешь........??:))
    если ты в теме, а насчёт себя, опять же замечу, далеко не Гуру:)), то должен знать, что не ломаемый математически шифр существует =============> угадай его название:)) - Б....т
    ты абсолютно прав кол-во операций на взлом одно и тоже:)))
    а мне стало интересно как вообще мог возникнуть такой вопрос?????
    и, вообще, либо давай алгос взлома шифра, либо кончай тратить своё высокооплачиваемое время на флудотоп.......
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    hwegh
    что такое в твоём алгосе v1 & v0 - данные????
     
  15. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    Мда, тяжелый случай. Пожалуй соглашусь с мнением flankerx
     
  16. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    UbIvItS
    Твой "шифр" ломается одинаково легко независимо от используемой длины слова. Алгоритм взлома практически не отличается от описанного выше, сложность остается прежней. Меняется лишь порядок, в котором нужно восстанавливать байты ключа. Кстати, атака только по шифртексту также остается вполне реальной. Дальше разжевывать надо, или сам додумаешься?

    И, все же, ответь на два вопроса:
    1. Зачем все-таки нужен симметричный алгоритм с длиной ключа 1024 бита и где его имеет смысл использовать?
    2. Сколько времени (минут, часов, дней) ты потатил на анализ собственного изобретения прежде чем предлагать его тут?
     
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    flankerx
    вопрос на засыпку: ответь почему алгос hwegh не будет ломать мой шифр:))??
    хватит намёков, если знаешь говори, а так.......
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    hwegh
    над твоим алгосом ещё надо подумать....... на первый взгляд - неплохо.
     
  19. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    A chto za resheniye budet? :derisive:

    Ruptor
     
  20. hwegh

    hwegh New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    54
    А хрен его знает, я ламер и нишарю. Это UbIvItS у нас супер профи в криптографии, может он что придумает :)