![]() |
Криптографический алгоритм
Приветствую, Вас!
Вот блин такая трабла, необходимо написать криптографический алгоритм BlowFish, если честно даже не знаю с чего начинать, поэтому прошу вашей помощи. В принципе, прога должна быть не большая, а как бы демонстрационно-обучающей, на Делфях. Кто сможет, помогите. Заранее благодарен. С Ув. F&D |
Так есть же готовые реализации
|
Не поверите, не могу найти. Плюс, хочу разобратся, чтобы было не позаумному, и можно было бы рассказать потом: что и как.... =(
|
http://dump.ru/file/1197102
вот тут большое количество криптографических алгоритмов,в том числе и Blowfish. |
Блин...посмотрел я файлы, и текст проги - слегка был в шоке, так ничего понять и не смог =(, поэтому если будет не сложно, помогите чем нибудь попроще, пожалуйста =(
|
http://www.mirrors.wiretapped.net/security/cryptography/algorithms/blowfish/
На любой, самый взыскательный выбор - там и С и С++ и Pascal и Java. |
Цитата:
Искренне Благодарю. Жаль нет на Делфи :( |
начни с малого
http://ru.wikipedia.org/wiki/Blowfish |
Спасибо за ссылку!
Я её уже видел, и каждый божий день на неё захожу, читаю и блин, понять особо немогу нифига...=( Я ошибаюсь, или он чем-то похож на RSA? :confused: |
если бы все все понималии умели думать то кто бы работал на стройке?
|
Цитата:
А если учитывать, что без этой проги я не допущюсь к экзамену, так вообще нужно вешаться :( |
в чём ты увидел его похожесть на RSA? :)
Blowfish - это симметричный блочный шифр RSA - асимметричный :) что конкретно не ясно? как проиходит шифрование? дык втыкай в исходные коды. |
Цитата:
http://forum.tuts4you.com/index.php?showtopic=15259&hl=Blowfish |
Блин, всем реально большущее спасибо за ссылки и т.п., но не могли бы Вы мне еще разок такому глупому помочь(я понимаю достал Вас), необходимо чтобы текст введенный в Edit1 был зашиврован по паролю который указан в Edit2 и выведен в Edit3, опять же по алгоритму BlowFish. Просто тот материал который Вы давали, слишком большой и сложный, для универа и тем более преподаватель не поверит, что я такое смог написать =(
|
Я в паскале не силен, на C\C++ выглядеть это будет примерно так:
Код:
string BlowfishCrypt(string key, string text) // вот так выглядит твоя функция в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 Там исходники написаны на любой вкус и цвет! |
| Время: 15:55 |