Какие существуют современные модификации RC4? VMPC и RC4A уже взломаны. У меня есть пару идей по усовершенствованию алгорита. В первую очередь это касается KSA - инициализировать s[] с побощью специальной хеш фунуции которая может работать как PRNG - для обеспечения максимальной рандомизации s[]. Далее включить простой IV на основе time() или еще чего. Ну и наконец добавитиь ROL()ов и штук типа как в VMPC в основной алгоритм...
Возьми лучше HC-128/256. Оч шустрый и дырок на сегодняшний день не найдено. Что касается RC4, то какая то его модификация используется для обфускации траффика скайпа. Сорцы вот тут, хрен что разберешь: http://cryptolib.com/ciphers/skype/
Код (Text): LPBYTE RC4(LPBYTE lpBuf, LPBYTE lpKey, DWORD dwBufLen, DWORD dwKeyLen) { INT a, b = 0, s[255]; BYTE swap; DWORD dwCount; for(a = 0; a < 255; a++) { s[a] = a; } for(a = 0; a < 255; a++) { b = (b + s[a] + lpKey[a % dwKeyLen]) % 255; swap = s[a]; s[a] = s[b]; s[b] = swap; } for(dwCount = 0; dwCount < dwBufLen; dwCount++) { a = (a + 1) % 255; b = (b + s[a]) % 255; swap = s[a]; s[a] = s[b]; s[b] = swap; lpBuf[dwCount] ^= s[(s[a] + s[b]) % 255]; } return lpBuf; } Дернуто из криптора от Tughack
Это какой-то левый RC4 - вместо %255 должно быть &255, ну или уж тогда %256... А так, тут все как в оригинале...
Да, и все лупы левые: for(a = 0; a < 255; a++) должно быть for(a = 0; a <= 255; a++) или for(a = 0; a < 256; a++) Кто-то пересидел на Дельфи...