Fire Skull crypt

Тема в разделе "Крипторы и исследование защиты", создана пользователем ewwa, 3 мар 2014.

↑ ↓
  1. ewwa Уважаемый пользователь
    ewwa
    Ответить в чате

    Форумчанин

    Регистрация:
    19.02.2014
    Сообщения:
    157
    Симпатии:
    400
    Пол:
    Мужской
    Репа:
    +402 / 0 / -0
    • Мне нравится Мне нравится x 2
  2. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.807
    Симпатии:
    426
    Пол:
    Мужской
    Репа:
    +959 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    Хе, XOR самый простецкий алгоритм, я в начале хотел написать свой криптор так для себя...

    Так вот долго думал как сделать, потом плюнул и решил сейчас написать свой шифровальщик на QT, тоже чисто для себя для души, короче открыл книгу по криптографии и афигел, до фига что там нужно знать, математику никогда не учил, так пробегал, гы-гы ! sm3888

    В общем думал как-бы с моими познаниями чо по проще выбрать и тут наткнулся на этот метод, не знаю как криптостойкость, но очень просто:

    Вот таблица истиности из булевой алгебры:

    ver29.


    Отсюда можно сделать следующие выводы: зная число Y и применяя XOR к X, мы получим Z. Затем, мы, опять же используя Y, получим из Z обратно число X.

    Таким образом мы можем преобразовать последовательность чисел (X)i в последовательность (Z)i. Теперь мы можем назвать число Y кодирующим (или шифрующим) ключом.

    Если человек не знает ключа, то он не сможет восстановить исходную последовательность чисел (X)i.

    Но если (X)i являются байтовым представлением букв текста, то опытный пользователь сможет вскрыть зашифрованный текст.

    Поскольку каждая буква будет представлена в шифротексте одним и тем же кодом Z, то воспользуясь частотным словарем взломщик сможет вычислить шифрующий ключ Y, если у него будет в распряжениии достаточно длинный шифротекст.

    В общем в Си это инверсия и простая процедурка реализации такого шифрования:


    Код:
    AnsiString XOR_Crypt(AnsiString InStrAnsiString Key)
     
    {
     
    AnsiString out="";
     
     
     
    for (
    int x=1;x<InStr.Length()+1;x++)
     
      
    out += (char)(InStr[x] ^ Key[x%Key.Length()+1]);
     
     
     
    return 
    out;
     
    }
    Где:

    InStr -то, что шифруем;
    Key-Наш ключ...

    Данная процедура обратима, т.е. если InStr - это зашифрованная информация, то приминив её с ключом key можем расшифровать...

    ВАЖНО: ДАННУЮ ШТУКУ МОЖНО ВЗЛОМАТЬ...
     
    • Мне нравится Мне нравится x 3
Похожие темы:
  1. ewwa
    Ответов:
    3
    Просмотров:
    1.570
Загрузка...

Поделиться этой страницей