Приветствую, Вас! Вот блин такая трабла, необходимо написать криптографический алгоритм BlowFish, если честно даже не знаю с чего начинать, поэтому прошу вашей помощи. В принципе, прога должна быть не большая, а как бы демонстрационно-обучающей, на Делфях. Кто сможет, помогите. Заранее благодарен. С Ув. F&D
Не поверите, не могу найти. Плюс, хочу разобратся, чтобы было не позаумному, и можно было бы рассказать потом: что и как.... =(
http://dump.ru/file/1197102 вот тут большое количество криптографических алгоритмов,в том числе и Blowfish.
Блин...посмотрел я файлы, и текст проги - слегка был в шоке, так ничего понять и не смог =(, поэтому если будет не сложно, помогите чем нибудь попроще, пожалуйста =(
http://www.mirrors.wiretapped.net/security/cryptography/algorithms/blowfish/ На любой, самый взыскательный выбор - там и С и С++ и Pascal и Java.
Спасибо за ссылку! Я её уже видел, и каждый божий день на неё захожу, читаю и блин, понять особо немогу нифига...=( Я ошибаюсь, или он чем-то похож на RSA?
Согласен. Поэтому и прошу помощи, у людей которые больше знают чем я, на данный момент! А если учитывать, что без этой проги я не допущюсь к экзамену, так вообще нужно вешаться
в чём ты увидел его похожесть на RSA? Blowfish - это симметричный блочный шифр RSA - асимметричный что конкретно не ясно? как проиходит шифрование? дык втыкай в исходные коды.
Блин, всем реально большущее спасибо за ссылки и т.п., но не могли бы Вы мне еще разок такому глупому помочь(я понимаю достал Вас), необходимо чтобы текст введенный в Edit1 был зашиврован по паролю который указан в Edit2 и выведен в Edit3, опять же по алгоритму BlowFish. Просто тот материал который Вы давали, слишком большой и сложный, для универа и тем более преподаватель не поверит, что я такое смог написать =(
Я в паскале не силен, на C\C++ выглядеть это будет примерно так: Code: string BlowfishCrypt(string key, string text) // вот так выглядит твоя функция в // общем виде ... Edit3.Text = BlowfishCrypt(Edit1.Text, Edit2.Text); //отдаем функции шифрования ключ // и текст // собственно говоря она должна вернуть зашифрованный текст прямо в твой Edit3 Этот код примерный, так что не гарантирую что будет работать as is, но думаю разобраться не долго даже с минимальным опытом программирования. P.S. Кстати чаво сам то не реализовал?=) В Википедии вроде все ясно для 32 битного блока.
Пробывал сам реализовать, но безрезультатно. Тем более не до конца понял сам алгоритм, каждый день вот разбираюсь. Консультации у препода жду. А прога должна быть на Делфи.
А что там: шифрование 2-х субблоков по 32 бита (в сумме блок 64 бита),накладываешь ключ раунда каждый субблок шифруетсо функцией F (X1, X2, X3, X4), где X1, X2, X3, X4 байты субблока, после чего меняешь местами субблоки. Вот собственно так и делаються первые 16 раундов.В 17-м и 18-м раундах блоки не меняються! Таблицы замены можно найти на офф сайте ключи раундов тоже там есть. Исходников под паскаль море: www.google.ru - в руки. Кста, тут вечерком подумал, а что те мишает повыеживаться перед преподом? BlowFish самый быстрый алгоритм, уязвимое место его расчет таблиц подстановки и генерация ключей раундов. А в наш время компы мощные, быстрые, с большим кол-вом памяти. Вот тебе и предложение возьми готовые реализации MD5, SHA-1, SHA-2 и с помощью них заполни таблицы и ключи. Например: MD5 дает 16 байт, вот тебе первые 4-е ключа раундов, отсюда и требование шоб пароль разбивался на 5 блоков, от которых возьмеш хэш. Для таблиц замены можешь также взять хэши, либо просто какой-нить расходящийся ряд, которые тебе увеличит пароль до словаря. Главное подбери простые алгоритмы дающие большую дисперсию при малом шаге, ну и работающие соответственно быстро. P.S. вот линка на офф сайт http://www.schneier.com/resources.html Там исходники написаны на любой вкус и цвет!