Бесплатная библиотека шифрования для Delphi

Я ищу бесплатную и современную библиотеку шифрования для Delphi 2010, которая реализует RSA и AES (Rijndael).

Мне нужна бесплатная библиотека, потому что я планирую написать и опубликовать образец кода, который будет ее использовать.

Версия TurboPower LockBox для Delphi 2010 была размещена на сайте SongBeamer, который реализует оба из них, но Я обеспокоен тем, что он немного устарел. Например, небольшие размеры ключей RSA и отсутствие новых функций безопасности в течение многих лет.

Обновление: неверно ли мнение, что LockBox устарел или не имеет важных функций? Актуально ли это для развития производства? (В частности, размеры ключей RSA)


person Bruce McGee    schedule 09.09.2009    source источник
comment
Как долго шифрование остается в зубах? Он все еще работает, правда? Алгоритм - это алгоритм. :-)   -  person Nick Hodges    schedule 10.09.2009
comment
Lockbox достаточно прост, чтобы работать нормально, порты SongBeamer должны были поддерживать Unicode. Изменения 2010 года будут незначительными, скорее всего, добавлением проверки версии компилятора.   -  person skamradt    schedule 10.09.2009
comment
@Ник. В комментариях к одному из ваших сообщений в блоге Луиджи предположил, что размеры ключей RSA LockBox теперь слишком малы для некоторых приложений и что в нем отсутствуют некоторые новые функции шифрования. Это заставило меня задуматься, какие еще бесплатные библиотеки были доступны.   -  person Bruce McGee    schedule 10.09.2009
comment
@skamradt. Обновление LockBox на сайте SongBeamer уже предназначено для Delphi 2010.   -  person Bruce McGee    schedule 10.09.2009
comment
Lockbox не имеет алгоритмов асиметрического шифрования и недействителен для реальных сертификатов и инфраструктур PKI. Лучшая библиотека для delphi, которую я тестировал, - это secureblackbox от eldos. Это VCL и работает с X.509 и PKI. Конечно, это не бесплатно.   -  person Francis Lee    schedule 11.09.2009
comment
RSA - это не асимметричный алгоритм?   -  person Bruce McGee    schedule 11.09.2009
comment
Я потратил дни, пытаясь использовать LockBox - в исходной версии есть ошибки *, а в версии 3.0 есть прикольный API. Человек в офисе написал на C # что-то, что только что работало, и мы используем его через COM из Дели. Уродлив, но надежен. * ошибка 1: вычисление заполнения было неправильным, поэтому вы можете расшифровать только с помощью lockbox (а не другой библиотеки), ошибка 2: я заметил, что небольшая функция простого числа возвращает четное число (после этого трудно доверять библиотеке!).   -  person robocat    schedule 01.08.2016


Ответы (10)


Алгоритм RSA не обязательно устарел, но важен размер ключа. Его до сих пор регулярно используют повсюду. Если требуется безопасность сверх 2030. Это просто результат повышения вычислительной мощности, а не слабость алгоритма.

Я смотрел на LockBox до того, как SongBeamer начал его поддерживать (Delphi 2007). Я нашел RSA нестабильным - просто дает сбой или время от времени дает неправильные результаты. Хотя с тех пор это могло быть исправлено. Если вы собираетесь его использовать, убедитесь, что он поддерживает нужную длину ключей, а затем создайте несколько автоматических тестов с известными входами и выходами. Убедитесь, что он работает стабильно. Если да, то используйте его во что бы то ни стало.

Вы также можете использовать Microsoft Crypto API для шифрования RSA. Я написал оболочку для Delphi 2007, но не обновил ее для Unicode (я знаю , Мне стыдно). Кто-то другой может легко обновить его для работы с Unicode.

Другой вариант - использовать функции шифрования .NET Framework через совместимость COM или что-то в этом роде.

person Jim McKeeth    schedule 11.09.2009
comment
+1 для оболочки Crypto API. - person Bruce McGee; 18.09.2009
comment
Я заметил, что читаю оболочку Crypto API Microsoft docs, в которой используются такие алгоритмы, как SHA- 256 и SHA-512 не поддерживаются ниже Windows XP SP3. Это может быть проблемой, если вы создаете приложения, которые нужно запускать в отдаленных местах, где они все еще могут работать с XP SP2. - person rossmcm; 08.11.2013
comment
Другая оболочка MS Crypto API - cc.embarcadero.com/item/17598 - person naXa; 12.03.2014

Выпущен TurboPower LockBox 3.1.0. Он поддерживает:

  • Delphi 2007 и Delphi 2010
  • Unicodestrings для Delphi 2010
  • Шифры AES, DES, 3DES, Blowfish и Twofish
  • Длинный список режимов цепочки блоков
  • Хеши MD5 и SHA1
  • RSA-шифрование, расшифровка, подпись и проверка
  • Ключи RSA переменной длины - практически нет ограничений по диапазону.
  • Код теста D-Unit
  • Автоматическая засолка
  • Правильное управление IV (в отличие от DCPcrypt)
  • Белый ящик, бесплатно и с открытым исходным кодом
  • 100% видимый собственный исходный код (без DLL)

http://sourceforge.net/projects/tplockbox/ и http://lockbox.seanbdurkin.id.au/

person Sean B. Durkin    schedule 25.10.2010
comment
Это не для Delphi 2007 - person FZS; 11.06.2021

Привет, Брюс, я использую эту библиотеку с Delphi 5,

Delphi Encryption Compedium Part I v.5.2

  • Полная переработка бывшего DEC 3, обновление до DEC 5.1 (выпущено еще в 2006 году)
  • Многие шифры (Blowfish, Twofish, 3DES, Rijndael ...)
  • Множество хешей (MD2 / 4/5, SHA1-512, RipeMD128-320 ...)
  • Функции контрольной суммы (CRC32, CRC16 ...)
  • Функции преобразования текста (MIME Base 64, XX / UU Coding ...)
  • Функции защиты случайных чисел
  • с шифрованием шифров в режимах (CTS / CBC / CFB / OFB / ECB ...)
  • Полная и простая объектно-ориентированная
  • Высокооптимизированное, быстрое ядро
  • Поддерживает ANSI и Unicode в D2009 (и ниже с использованием WideStrings) ...

Является бесплатным ПО и с кодом волшебства, к сожалению, не реализует RSA.

person RRUZ    schedule 10.09.2009
comment
Он перемещен в код Google: code.google.com/p/delphidec Мелочь. Мне нравится в DEC, вам нужно только включить 1 каталог против 3 с DCPCrypt. - person Ray Hulha; 26.01.2012

Похоже, работа с D2010 завершена:

TurboPower LockBox. Шифрование данных. 4 сентября 2009 г.. Загрузить

Статус: должно работать нормально.
Эта библиотека была расширена и теперь поддерживает шифрование Ansi и UnicodeStrings.
04.09.2009
* Пакеты Delphi 2010
* должны компилироваться без подсказок и предупреждений

person Francesca    schedule 10.09.2009

  • Как упоминал Аргалатыр, DCPCrypt работает с Delphi 2009, но не поддерживает RSA;

  • ChillKat действительно поддерживает RSA и AES для Delphi, но это не бесплатно;

  • Сергей Кириченко сделал бесплатную реализацию Rijndael, которую вы можете скачать здесь: http://rcolonel.tripod.com/dwnload/rc_rnd.zip. Файлы датированы ноябрем 2000 года, поэтому я не знаю, будет ли он работать непосредственно в более новой версии Delphi.

  • Раньше был zip-файл с кодом Delphi для загрузки здесь: http://ace.ulyssis.student.kuleuven.ac.be/~triade/GInt/bin/RSA.zip, но разработчик, вероятно, закончил свое исследование, и университет удалил его домашнюю страницу. На этой китайской веб-странице я мог видеть содержимое файла (поиск RSA.pas на странице и щелкните ссылку).

Я не знаю точно, что вы имеете в виду под «давно в зубах» (старый?), Но я бы просто выбрал Lockbox, потому что он предоставляет все, что вам нужно. За исключением обновления 2009 года, последние официальные изменения были внесены в 2003 году. Но послушайте, если это работает, то работает.

person Wouter van Nifterick    schedule 10.09.2009

Для примера кода LockBox может подойти, но я бы больше не использовал его в продакшене. Шифрование действительно идет «в зубах». Алгоритмы устаревают. Необнаруженные ранее недостатки, усовершенствованные методы криптоанализа, математические достижения, увеличивающаяся мощность процессора делают некогда безопасные алгоритмы и размеры ключей уже недостаточно безопасными. 3DES, MD5, SHA-1 уже считаются недостаточными. Атаки на AES были недавно опубликованы (http://eprint.iacr.org/2009/374). Минимальный рекомендуемый размер ключа RSA теперь составляет 1024 бита, в то время как ключи 2048 и 3072 рекомендуются, если данные необходимо защищать в течение многих лет. Lockbox предлагает только ключи размером 1024 бит или меньше. Также необходимо выбрать правильный режим блочного шифрования. А класс LockBox TLbRijndael (AES) по умолчанию использует ECB, который имеет известные недостатки и не предлагает ничего, кроме CBC. Из-за важности электронной безопасности, достигнутой за эти годы, и последующих исследований как хорошими, так и плохими парнями, семилетняя библиотека действительно устарела - просто перекомпилировать ее и добавить поддержку строк UTF-16 недостаточно. Имейте в виду, что ложная безопасность хуже, чем ее отсутствие. Если системному администратору сообщают, что «у нас нет никакой защиты», он сам будет работать над обеспечением безопасности (например, IPSec, VPN и т.п.). Если ему скажут «да, у нас есть RSA и AES!» он будет чувствовать себя хорошо, даже если ваша реализация AES и RSA устарела и больше не безопасна.

person Community    schedule 10.09.2009
comment
Тот, кто проголосовал против, может объяснить, почему? Покажи мне, в чем я ошибаюсь, пожалуйста ... - person ; 27.02.2011

Я не пробовал это в D2010, но DCPcrypt предположительно работает в D2009.

person Argalatyr    schedule 09.09.2009
comment
Я видел это. Переход с Delphi 2009 на Delphi 2010 должен быть тривиальным. К сожалению, он не реализует RSA. По крайней мере, я не мог видеть. - person Bruce McGee; 10.09.2009
comment
Думаю, вы правы - я сосредоточился на AES. - person Argalatyr; 10.09.2009

Fundamentals Cody Library имеет реализации для шифрования AES и RSA. . Однако я не использовал библиотеку, поэтому не могу комментировать ее качество.

person Shannon Matthews    schedule 09.07.2014

Похоже, что существует множество бесплатных реализаций Delphi AES. Не стесняйтесь добавлять свои любимые сюда.

Кажется, не так много бесплатных реализаций RSA и очень мало библиотек, которые предлагают и то, и другое.

Похоже, LockBox - все еще довольно разумный вариант. Тем более, что мне не нужно шифрование, на взлом которого уйдут буквально годы.

Я думаю, что использование Microsoft Crypto API напрямую может быть наиболее практичным вариантом.

person Bruce McGee    schedule 18.09.2009

Даниэле Тети выпустил коллекцию фильтров DataSnap для Delphi 2010, которая включает хэш, шифр и сжатие. Он упоминает, что может также реализовать асимметричные шифры в будущем.

http://www.danieleteti.it/

Это открытый исходный код, поэтому, пожалуйста, не стесняйтесь вносить свой вклад.

person Bruce McGee    schedule 02.10.2009