z_x_spectrum Можно, но криптостойкой она не будет. Стойкость хаш требует гораздо большего, чем стойкость шифра. Сам RC4 стойким не считается. Но даже если закрыть глаза на его отклонения, такой хаш стойким всё равно никак не будет без радикальных структурных изменений. Короче, всё надо переделывать и это уже не будет RC4 напоминать никак. Я настоятельно рекомендую не изобретать самому хаш функции, а сперва научиться их ломать.
это не будет. Наоборот, это будет очень просто ломаться. Я бы даже порекомендовал эту задачу преподавателям первого курса криптологии чтобы студенты прочувствовали как трудно делать криптостойкие хаш функции и как легко они иногда ломаются даже если шифр сломать гораздо труднее.
Чуть изменить алгос и будет нормально (достаточно например суммировать с позицией). Учитывая что инструментав и идей для нового алгоритма нет то щас проще ломануть стандартный хеш чем изучать уязвимые места непонятного алгоритма. P/S/ Возми лучше двойной разворот ключа (тобиш из первого делать второй). Так у алгоритмов RCx вся суть и стоит в развороте ключа и его перемешки само шифрование основана на XOR. Вторым разворотом прибьет всю зависимость (особенно если байты вибирать относительно первого (или другого) байта ключа или исходной строки)
z_x_spectrum Ты очевидно не понимаешь разницы между взломом шифра с неизвестным секретным состоянием и нахождением hash preimages и collisions не только с известными, но и со специально выбранными параметрами. Когда внутреннее состояние под полным контролем атакующего, у RC4 нет никаких шансов. Его какая-никакая стойкость как поточного шифра не играет при этом никакой роли.
ну если разворот ключа делать на основе хешируемой строки, А из результата вибирать байты относительно входной строки то прокатит (да и инструмента для поиска каллизий нет). А что там известно, и что подконтрольно? также и MD5 известен, суть почти таже -(сделать рандомную гамму). зная развернутый ключ незя востановить секретный (особенно если была перемешка)
К хэш-функциям и поточным шифрам совершенно разные требования (см http://ru.wikipedia.org/wiki/Хэширование). Как, к примеру, прикажете хэшировать 4-х гигабайтный файл с помощью RC4? Какова будет при этом скорость? Особо остро стоит вопрос со стойкостью и парадоксом дней рождений. В общем в теории такое применение поточных шифров, конечно, возможно. Но этот вопрос требует глубогих исследований, для чего требуется участие куда более компетентных людей, чем мы с вами (выдающихся криптоаналитиков, предположительно, не присутствует).