Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Криптографический алгоритм (https://forum.antichat.xyz/showthread.php?t=91073)

F&D 09.11.2008 17:08

Криптографический алгоритм
 
Приветствую, Вас!
Вот блин такая трабла, необходимо написать криптографический алгоритм BlowFish, если честно даже не знаю с чего начинать, поэтому прошу вашей помощи. В принципе, прога должна быть не большая, а как бы демонстрационно-обучающей, на Делфях.

Кто сможет, помогите.
Заранее благодарен. С Ув. F&D

NeXArmAor 09.11.2008 17:09

Так есть же готовые реализации

F&D 09.11.2008 17:19

Не поверите, не могу найти. Плюс, хочу разобратся, чтобы было не позаумному, и можно было бы рассказать потом: что и как.... =(

NeXArmAor 09.11.2008 17:25

http://dump.ru/file/1197102
вот тут большое количество криптографических алгоритмов,в том числе и Blowfish.

F&D 09.11.2008 19:19

Блин...посмотрел я файлы, и текст проги - слегка был в шоке, так ничего понять и не смог =(, поэтому если будет не сложно, помогите чем нибудь попроще, пожалуйста =(

Namelles One 10.11.2008 10:50

http://www.mirrors.wiretapped.net/security/cryptography/algorithms/blowfish/

На любой, самый взыскательный выбор - там и С и С++ и Pascal и Java.

F&D 11.11.2008 01:17

Цитата:

Сообщение от Namelles One
http://www.mirrors.wiretapped.net/security/cryptography/algorithms/blowfish/

На любой, самый взыскательный выбор - там и С и С++ и Pascal и Java.


Искренне Благодарю. Жаль нет на Делфи :(

Hellsp@wn 11.11.2008 02:25

начни с малого

http://ru.wikipedia.org/wiki/Blowfish

F&D 11.11.2008 02:47

Спасибо за ссылку!
Я её уже видел, и каждый божий день на неё захожу, читаю и блин, понять особо немогу нифига...=(

Я ошибаюсь, или он чем-то похож на RSA? :confused:

LEE_ROY 11.11.2008 02:55

если бы все все понималии умели думать то кто бы работал на стройке?

F&D 11.11.2008 03:03

Цитата:

Сообщение от LEE_ROY
если бы все все понималии умели думать то кто бы работал на стройке?

Согласен. Поэтому и прошу помощи, у людей которые больше знают чем я, на данный момент!
А если учитывать, что без этой проги я не допущюсь к экзамену, так вообще нужно вешаться :(

Hellsp@wn 11.11.2008 13:40

в чём ты увидел его похожесть на RSA? :)

Blowfish - это симметричный блочный шифр
RSA - асимметричный :)

что конкретно не ясно? как проиходит шифрование? дык втыкай в исходные коды.

0x0c0de 11.11.2008 18:43

Цитата:

Сообщение от F&D
Искренне Благодарю. Жаль нет на Делфи :(

Есть
http://forum.tuts4you.com/index.php?showtopic=15259&hl=Blowfish

F&D 17.11.2008 00:24

Блин, всем реально большущее спасибо за ссылки и т.п., но не могли бы Вы мне еще разок такому глупому помочь(я понимаю достал Вас), необходимо чтобы текст введенный в Edit1 был зашиврован по паролю который указан в Edit2 и выведен в Edit3, опять же по алгоритму BlowFish. Просто тот материал который Вы давали, слишком большой и сложный, для универа и тем более преподаватель не поверит, что я такое смог написать =(

LuX0R 18.11.2008 12:02

Я в паскале не силен, на C\C++ выглядеть это будет примерно так:
Код:

string BlowfishCrypt(string key, string text)  // вот так выглядит твоя функция в
 //  общем виде
...
Edit3.Text = BlowfishCrypt(Edit1.Text, Edit2.Text); //отдаем функции шифрования ключ
 // и текст
// собственно говоря она должна вернуть зашифрованный текст прямо в твой Edit3

Этот код примерный, так что не гарантирую что будет работать as is, но думаю разобраться не долго даже с минимальным опытом программирования.
P.S. Кстати чаво сам то не реализовал?=) В Википедии вроде все ясно для 32 битного блока.

F&D 18.11.2008 14:23

Цитата:

Сообщение от LuX0R
Я в паскале не силен, на C\C++ выглядеть это будет примерно так:
Код:

string BlowfishCrypt(string key, string text)  // вот так выглядит твоя функция в
 //  общем виде
...
Edit3.Text = BlowfishCrypt(Edit1.Text, Edit2.Text); //отдаем функции шифрования ключ
 // и текст
// собственно говоря она должна вернуть зашифрованный текст прямо в твой Edit3

Этот код примерный, так что не гарантирую что будет работать as is, но думаю разобраться не долго даже с минимальным опытом программирования.
P.S. Кстати чаво сам то не реализовал?=) В Википедии вроде все ясно для 32 битного блока.

Пробывал сам реализовать, но безрезультатно. Тем более не до конца понял сам алгоритм, каждый день вот разбираюсь. Консультации у препода жду.
А прога должна быть на Делфи.

LuX0R 19.11.2008 09:48

А что там: шифрование 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