RC4-MOD

Тема в разделе "WASM.CRYPTO", создана пользователем encode, 30 окт 2010.

  1. encode

    encode New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2008
    Сообщения:
    13
    Какие существуют современные модификации RC4?

    VMPC и RC4A уже взломаны. У меня есть пару идей по усовершенствованию алгорита. В первую очередь это касается KSA - инициализировать s[] с побощью специальной хеш фунуции которая может работать как PRNG - для обеспечения максимальной рандомизации s[]. Далее включить простой IV на основе time() или еще чего. Ну и наконец добавитиь ROL()ов и штук типа как в VMPC в основной алгоритм...
     
  2. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Возьми лучше HC-128/256. Оч шустрый и дырок на сегодняшний день не найдено. Что касается RC4, то какая то его модификация используется для обфускации траффика скайпа. Сорцы вот тут, хрен что разберешь:
    http://cryptolib.com/ciphers/skype/
     
  3. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Код (Text):
    1. LPBYTE  RC4(LPBYTE lpBuf, LPBYTE lpKey, DWORD dwBufLen, DWORD dwKeyLen)
    2. {
    3.     INT a, b = 0, s[255];
    4.     BYTE swap;
    5.     DWORD dwCount;
    6.     for(a = 0; a < 255; a++)
    7.     {
    8.         s[a] = a;
    9.     }
    10.     for(a = 0; a < 255; a++)
    11.     {
    12.         b = (b + s[a] + lpKey[a % dwKeyLen]) % 255;
    13.         swap = s[a];
    14.         s[a] = s[b];
    15.         s[b] = swap;
    16.     }
    17.     for(dwCount = 0; dwCount < dwBufLen; dwCount++)
    18.     {
    19.         a = (a + 1) % 255;
    20.         b = (b + s[a]) % 255;
    21.         swap = s[a];
    22.         s[a] = s[b];
    23.         s[b] = swap;
    24.         lpBuf[dwCount] ^= s[(s[a] + s[b]) % 255];
    25.     }
    26.     return lpBuf;
    27. }
    Дернуто из криптора от Tughack
     
  4. encode

    encode New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2008
    Сообщения:
    13
    Это какой-то левый RC4 - вместо %255 должно быть &255, ну или уж тогда %256... А так, тут все как в оригинале...
     
  5. encode

    encode New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2008
    Сообщения:
    13
    Да, и все лупы левые:
    for(a = 0; a < 255; a++)
    должно быть
    for(a = 0; a <= 255; a++)
    или
    for(a = 0; a < 256; a++)

    Кто-то пересидел на Дельфи...
     
  6. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Да там 256 было...
    - а что это? :)