Криптографический алгоритм

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by F&D, 9 Nov 2008.

  1. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Приветствую, Вас!
    Вот блин такая трабла, необходимо написать криптографический алгоритм BlowFish, если честно даже не знаю с чего начинать, поэтому прошу вашей помощи. В принципе, прога должна быть не большая, а как бы демонстрационно-обучающей, на Делфях.

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

    NeXArmAor Banned

    Joined:
    21 Apr 2007
    Messages:
    226
    Likes Received:
    161
    Reputations:
    6
    Так есть же готовые реализации
     
  3. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Не поверите, не могу найти. Плюс, хочу разобратся, чтобы было не позаумному, и можно было бы рассказать потом: что и как.... =(
     
  4. NeXArmAor

    NeXArmAor Banned

    Joined:
    21 Apr 2007
    Messages:
    226
    Likes Received:
    161
    Reputations:
    6
    http://dump.ru/file/1197102
    вот тут большое количество криптографических алгоритмов,в том числе и Blowfish.
     
    1 person likes this.
  5. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Блин...посмотрел я файлы, и текст проги - слегка был в шоке, так ничего понять и не смог =(, поэтому если будет не сложно, помогите чем нибудь попроще, пожалуйста =(
     
  6. Namelles One

    Namelles One Elder - Старейшина

    Joined:
    8 Jul 2005
    Messages:
    43
    Likes Received:
    14
    Reputations:
    19
    http://www.mirrors.wiretapped.net/security/cryptography/algorithms/blowfish/

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

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5

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

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    начни с малого

    http://ru.wikipedia.org/wiki/Blowfish
     
  9. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Спасибо за ссылку!
    Я её уже видел, и каждый божий день на неё захожу, читаю и блин, понять особо немогу нифига...=(

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

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    если бы все все понималии умели думать то кто бы работал на стройке?
     
    1 person likes this.
  11. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Согласен. Поэтому и прошу помощи, у людей которые больше знают чем я, на данный момент!
    А если учитывать, что без этой проги я не допущюсь к экзамену, так вообще нужно вешаться :(
     
  12. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    в чём ты увидел его похожесть на RSA? :)

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

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

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Есть
    http://forum.tuts4you.com/index.php?showtopic=15259&hl=Blowfish
     
  14. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Блин, всем реально большущее спасибо за ссылки и т.п., но не могли бы Вы мне еще разок такому глупому помочь(я понимаю достал Вас), необходимо чтобы текст введенный в Edit1 был зашиврован по паролю который указан в Edit2 и выведен в Edit3, опять же по алгоритму BlowFish. Просто тот материал который Вы давали, слишком большой и сложный, для универа и тем более преподаватель не поверит, что я такое смог написать =(
     
  15. LuX0R

    LuX0R New Member

    Joined:
    18 Nov 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Я в паскале не силен, на C\C++ выглядеть это будет примерно так:
    Code:
    string BlowfishCrypt(string key, string text)  // вот так выглядит твоя функция в
     //  общем виде
    ...
    Edit3.Text = BlowfishCrypt(Edit1.Text, Edit2.Text); //отдаем функции шифрования ключ 
     // и текст
    // собственно говоря она должна вернуть зашифрованный текст прямо в твой Edit3
    
    Этот код примерный, так что не гарантирую что будет работать as is, но думаю разобраться не долго даже с минимальным опытом программирования.
    P.S. Кстати чаво сам то не реализовал?=) В Википедии вроде все ясно для 32 битного блока.
     
    #15 LuX0R, 18 Nov 2008
    Last edited: 18 Nov 2008
  16. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Пробывал сам реализовать, но безрезультатно. Тем более не до конца понял сам алгоритм, каждый день вот разбираюсь. Консультации у препода жду.
    А прога должна быть на Делфи.
     
  17. LuX0R

    LuX0R New Member

    Joined:
    18 Nov 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    А что там: шифрование 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 Там исходники написаны на любой вкус и цвет!