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

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

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

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

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

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

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

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

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

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/

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

Компиляция Delphi Encryption 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) …

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

Похоже, что работа D2010 выполнена :

TurboPower LockBox . Шифрование данных . 04.09.2009 . Скачать

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

  • Как упоминал Аргалатыр, 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 году. Но, если он работает, это работает.

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

Я не пробовал это в D2010, но DCPcrypt якобы работает в D2009.

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

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

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

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

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

Daniele Teti выпустила набор фильтров DataSnap для Delphi 2010, который включает в себя hash, шифрование и сжатие. Он упоминает, что в будущем он может также применять асимметричные шифры.

http://www.danieleteti.it/

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

  • Почему мое шифрование AES вызывает InvalidKeyException?
  • AES совместимость между .Net и iPhone?
  • Какие Cipher Suites включить для SSL Socket?
  • Microsoft Word внезапно не сохранит файлы; «Слово не может создать рабочий файл - проверьте переменную среды temp»
  • Windows Bitlocker и автоматическая разблокировка безопасности хранилища паролей
  • C # версия метода OpenSSL EVP_BytesToKey?
  • Расшифровка открытого ключа OpenSSL PEM Encoded RSA с Java?
  • Как удалить зашифрованный флаг при копировании файла с жесткого диска на USB-накопитель?
  • Java AES 128 по-разному шифрует openssl
  • Шифрование Web.Config
  • Шифрование LUKS с неинтерактивным входом на RHEL6
  • Interesting Posts

    Попытка отслеживать PID в окнах, созданных из команды pub

    Почему пример не компилируется, а как работает (co-, contra- и in) дисперсия?

    Как можно вызвать методы wait () и notify () в объектах, которые не являются нитями?

    Получить позицию курсора в Android в редакторе текста?

    Что делать, если текущий сеанс ASP.NET равен нулю?

    filterArrayUsingPredicate не существует в быстром массиве

    Разберите ifconfig, чтобы получить только мой IP-адрес, используя Bash

    Microsoft word `product (left)` для всех числовых ячеек

    Ошибка «Не удается запустить веб-сервер IIS Express»

    Установка гостевых дополнений на VirtualBox под управлением Windows 10 TP

    Есть ли функция Notepad ++ для добавления некоторого вертикального пространства в нижнюю часть или прокрутка ниже последней строки?

    Просмотр fragmentа в ViewPager не восстанавливается при возобновлении

    Что такое копирование и как он оптимизирует идиому копирования и свопинга?

    Заключительные стоп-сигналы от бодрствования Windows 10 desktop

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой связи

    Давайте будем гением компьютера.