Не уверен с выбором группы...
В шифровании я полный 0. Есть shareware программа к которой нужно приделать ключики. Клдючики хотелось бы иметь как в HardKey (если кто знает) т.е. чтоб ключик был не очень длинным (~10-20 символов) и при этом с высокой степенью защиты. Первым решением было использовать Crypto API — глюкало страшное, у половины пользователей стоят разные не совсем совместимые версии, у другой половины вообще не стоит Второе решение было использовать готовый ASProtect — глюкало не менее страшное, половина функционала не работает и вообще "мы наш продукт в такой ситуации еще не тестировали". А теперь собственно суть: нужен какой ни будь подходящий алгоритм шифрования в исходниках на С++, бывает такое? Т.е. функция — сгенерировать пару ключей, функция шифрануть ключик к программе, функция проверить ключик. Все на чистом С++ без использования каких либо сторонних API.
Здравствуйте, Slov, Вы писали:
S>В шифровании я полный 0.
Аналогично. Вот тут посмотри : Crypto++ Правда, какой алгоритм взять — не скажу (см выше ), но зато когда будешь знать какое — будкешь знать, где брать
Здравствуйте, Kaa, Вы писали:
Kaa>Здравствуйте, Slov, Вы писали:
S>>В шифровании я полный 0. Kaa>Аналогично.
Почти ананалогично. Kaa> Вот тут посмотри : Crypto++ Правда, какой алгоритм взять — не скажу (см выше ), но зато когда будешь знать какое — будкешь знать, где брать
Единственное, что могу добавить: Насколько я знаю, на данный момент лучшее соотношение "Сложность взлома"/"Длина ключа" у шифрования на эллиптических кривых.
Здравствуйте, Slov, Вы писали:
S>Hello, All!
S>Не уверен с выбором группы... S>В шифровании я полный 0. Есть shareware программа к которой нужно приделать ключики. Клдючики хотелось бы иметь как в HardKey (если кто знает) т.е. чтоб ключик был не очень длинным (~10-20 символов) и при этом с высокой степенью защиты. Первым решением было использовать Crypto API — глюкало страшное, у половины пользователей стоят разные не совсем совместимые версии, у другой половины вообще не стоит Второе решение было использовать готовый ASProtect — глюкало не менее страшное, половина функционала не работает и вообще "мы наш продукт в такой ситуации еще не тестировали". А теперь собственно суть: нужен какой ни будь подходящий алгоритм шифрования в исходниках на С++, бывает такое? Т.е. функция — сгенерировать пару ключей, функция шифрануть ключик к программе, функция проверить ключик. Все на чистом С++ без использования каких либо сторонних API.
Выбор правильного набота криптоалгоритмов и их реализация -- нелёгкая задача.
Даже если с криптографией всё будет в порядке, необходимо будет ещё защитить сам код проверки от модификации, что является ещё более сложной задачей.
Так что лучше купи что-нить готовое. Сделать эффективную и трудноломаемую защиту очень сложно.
Ну из доступных попробуй Blowfish2 Брюса Шнайдера, исходники доступны..поищи...а вообще ты под какую систему пишешь то ? тк CryptoAPI и в никсах есть.А ключики генерить — пока никто ничего не придумал лучше чем хеширование парольной фразы по MD5.
Здравствуйте, Slov, Вы писали:
S>Не уверен с выбором группы...
Это зря
S> Клдючики хотелось бы иметь как в HardKey (если кто знает) т.е. чтоб ключик был не очень длинным (~10-20 символов) и при этом с высокой степенью защиты.
Ассиметрично шифрование на ключах такой длины пользы не принесет! Как минимум раз в пять стоит увеличить размер ключа.
Здравствуйте, Adekamer, Вы писали:
A>Ну из доступных попробуй Blowfish2 Брюса Шнайдера, исходники доступны..поищи...а вообще ты под какую систему пишешь то ?
С каких это пор Blowfish записали в алгоритмы ассиметричного шифрования?
A>А ключики генерить — пока никто ничего не придумал лучше чем хеширование парольной фразы по MD5.
В общем случае очень спорное высказывание и тем более НЕ универсально верное. В основном такие ключи (на основании пароля) используются для защиты других — сильных рабочих ключей. Которые кроме пароля, защищаются тем, что хранятся на внешнем носителе (который всегда с собой), а вот на случай если носитель выкрадут, чтобы создать дополнительные сложности злоумышленнику ключи хрянят зашифрованные неким симметричным алгоритмом на пароле. Ну и плюс MAC (имитовставка) на том же пароле, чтобы затруднить подмену ключа.