банальный xor

Тема в разделе "WASM.CRYPTO", создана пользователем k0k0s, 10 сен 2006.

  1. k0k0s

    k0k0s New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    28
    Возможно, кому-то будет интересно, или кто-то просто знает, но тем не менее:

    Условие задачи: вычислить какие 2 текста зашифрованы

    Известно:
    1) шифрование использует коды ASCII со 128 возможными «буквами» в любой позиции;
    2) ключ одинаков для обоих документов;
    3) ключ был сгенирирован псевдослучайным образом со значениями в пределах от 0-127;
    4) если длины исходных текстов несовпадают, то более короткий дополняют пробелами;
    5) оба текста - куски достаточно известных текстов на английском языке.

    шифр1:
    42 102 120 61 61 67 57 84 117 66 41 33 100 116 15 55 80 16 120 0 54 78 105 113 96 25 43 69 39 82 125 40 40 24 120 94 92 37 114 53 64 63 107 19 82 62 99 81 81 69 103 22 120 123 71 1 113 57 5 50 67 40 2 85 67 11 40 56 22 89 127 95 59 121 27 121 95 121 114 3 1 5 45 103 112 127 62 34 39 13 44 30 80 19 2 60 72 80 56 18 93 31 69 66 45 122 71 33 58 113 12 120 50 63 39 5 110 28 14 48 109 10 68 95 92 88 0 30 107 4 54 92 104 122 5 95 15 118 42 93 75 83 9 35 106 8 13 53 101 93 32 60 53 36 72 101 121 121 121 99 98 89 30 71 87 87 14 107 28 36 42 108 98 95 99 68 2 60

    шифр2:
    34 40 111 117 37 64 32 88 55 74 112 117 103 121 23 54 91 5 116 84 42 79 127 35 114 80 48 67 39 71 53 62 97 12 113 48 47 34 122 57 80 63 122 77 61 93 119 68 71 83 107 87 116 115 2 19 101 112 86 127 78 109 2 89 81 17 85 5 21 94 127 84 59 109 13 42 25 116 126 7 7 18 106 118 113 62 37 63 43 102 69 73 79 14 7 105 70 17 18 25 93 56 7 27 7 84 8 117 50 123 9 44 42 50 98 76 111 6 4 48 117 7 86 88 92 75 29 16 121 65 52 80 107 50 19 8 41 46 10 84 74 95 93 57 106 27 72 125 101 73 97 56 58 51 89 101 108 125 112 99 114 72 18 9 84 30 7 107 89 34 39 103 33 86 36 3 74 104
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    k0k0s
    Если ключ имеет размер равный размеру зашифрованного сообщения, то расшифровать невозможно! Отсюда вопрос:
    Какова длина ключа?
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    EvilsInterrupt
    А я думаю, что возможно.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Так ASCII или произвольные позиции?
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    В Брюс Шнайере про одно-разовые блокноты читал?
     
  6. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    Если длина ключа равна длине текста , то такой текст НЕ ВОЗМОЖНО РАЗШИФРОВАТЬ.

    например

    исходный текст = "тест"
    ключ = пофиг какой но длина = 4 байта
    выходной текст = "зузу"

    ты никак не сможешь доказать что исходный текст был "тест". Ведь я могу сказать что исходный текст был "ёжик", и все. Так как я могу зделать такой ключ чтоб при ксоре ответ ставал "ёжик".
     
  7. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    EvilsInterrupt
    MegaZu

    Обратите внимание на

    Понятно ведь, что это необходимое для расшифрования условие. One-time pads, которые вы похоже оба имеете в виду, являются криптостойкими , только если применяются всего один раз (как и следует из названия :)).
     
  8. Fallout

    Fallout New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2004
    Сообщения:
    94
    Адрес:
    Russia
    Я вчера когда вчером увидел этот пост... тоже сразу подумал раз ключ такой же длины то нереально.... да и былобы удобнее если бы два текста даны были бы атачами в бинарном виде скажем а то ну не удобно Ж) А так можно попробывать часть текста расшифровать переберая комбинации ключей.... хотя бы первые 4 байта тежи.. и смотреть чтоб при расшифровки как я понимаю он должен расшифровать два текста.... были бы только те символы которые можно напичатать... правдо думаю все ровно закалебешься =)
     
  9. k0k0s

    k0k0s New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    28
    Stiver
    ты прав, эта задача решаема, на 100%.

    Другой вопрос - во что это решение встанет? :)

    Наиболее близок к моему ходу мыслей был Fallout

    Изначально, чисто теоретически, мы имеем 177 в степени 128 комбинаций ключа.
    Потом ксорим 2 текста - получаем ксор незашифрованных текстов => количество комбинаций сокращается в два раза.

    Вот...

    А с этого места самое интересное!
    Либо подключать словарик выдергивающий английские слова - ну это не очень эротично.
    Второй вариант - что то наподобии интерактивности, чтобы сразу исключать муть типа dsfjkb - это в лучшем случае :)

    Вообщем у меня еще время до 18-го. Завтра еще с преподом поболтаю.
     
  10. k0k0s

    k0k0s New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    28
    Pavia
    ASCII - насколько я сам понял.
     
  11. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    k0k0s
    Так ты сам решения не знаешь?

    Если это ASCII и текст осмысленный то часть сообщения можно восстановить следующим образом: берём первые 2 символа предполагаем, что это 2 буквы. Ксорим их и получаем
    (X xor Key) xor (Y xor Key)=X xor Y . Ксорим все возможные комбинации букв друг с другом в поисках совпадений. Затем из всех совпадений выбираем наиболее вероятную пару (по таблице частот для английского). И так по всем символам. Может быть появятся осмысленные куски.
     
  12. Fallout

    Fallout New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2004
    Сообщения:
    94
    Адрес:
    Russia
    2asd
    а у нас же грубо говоря для каждый буквы свой ключ... Ж)


    Я вот счас попробывал взял первые так скзаать 4 байта из обоих тексов.... в цикле от 0 до 0xFFFFFFFF ключ... и ксорил им эти 4 байта после ксора проверял чтоб два этих 4-х байтных куска были буквами... честно сказать такого ВООБЩЕ не было Ж) взял из произвольных двух мест по 4 байта.... тоже самое толи на пробелы нарываюсь всегда толи ещё чего Ж)
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    А что если столкунуть оба текста ?
     
  14. k0k0s

    k0k0s New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    28
    EvilsInterrupt

    вот что:

    Код (Text):
    1. 74  78  23  72  24  3  25  12  66  8  89  84  3  13  24  1  11  21  12  84  28  1  22  82  18  73  27  6  0  21  72  22  73  20  9  110  115  7  8  12  16  0  17  94  111  99  20  21  22  22  12  65  12  8  69  18  20  73  83  77  13  69  0  12  18  26  125  61  3  7  0  11  0  20  22  83  70  13  12  4  6  23  71  17  1  65  27  29  12  107  105  87  31  29  5  85  14  65  42  11  0  39  66  89  42  46  79  84  8  10  5  84  24  13  69  73  1  26  10  0  24  13  18  7  0  19  29  14  18  69  2  12  3  72  22  87  38  88  32  9  1  12  84  26  0  19  69  72  0  20  65  4  15  23  17  0  21  4  9  0  16  17  12  78  3  73  9  0  69  6  13  11  67  9  71  71  72 84
     
  15. Fallout

    Fallout New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2004
    Сообщения:
    94
    Адрес:
    Russia
    Ну вот если заксорить скажем две букву... какие нибудь даже в заксореном виде то поулчаеться значение такое же как еслиб мы закорили и реальные... буковки =)
     
  16. k0k0s

    k0k0s New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    28
    asd

    нет не знаю... пока что :]
     
  17. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Fallout
    Ты немного не понял, по-моему.
    Берём первые 2 символа: 42 и 34. Ксорим их друг с другом - получаем число Z. Этот
    Z=X xor Y, где Х и Y - символы исходных текстов. Теперь берём букву "a" и ксорим её с буквой "b", проверяем равны ли они Z , и так для всех букв. Находим все совпадения и выбираем из них. Проверять надо побайтно.
    Пример
    42=2a
    34=22
    2a xor 22 = 8
    ищем все возможные пары символов проксорив которые мы получим 8 и вабираем из них. К примеру это врядли символы 8 и 0
     
  18. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    А в какой системе исходные шифротексты? Я думаю в 10-ой, раз там есть 3-х значные числа?
     
  19. Fallout

    Fallout New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2004
    Сообщения:
    94
    Адрес:
    Russia
    А ну да понятненько... извени дейсвительно не так понял... я счас тоже как раз так решил... сделать... Ж) ну и задания конечно дают... Ж)
     
  20. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    Ухватится за пробелы в конце текста. Хотя без длинны ключя ХЗ как подобрать.