Безплатна библиотека за шифроване за Delphi [затворено]

Търся безплатна и актуална библиотека за криптиране за Delphi 2010, която прилага RSA и AES (Rijndael).

Искам безплатна библиотека, защото планирам да напиша и публикувам примерен код, който ще я използва.

Delphi 2010 версия на TurboPower LockBox е публикувана на сайта 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: padding calc беше неправилен, така че можете да дешифрирате само с помощта на lockbox (не друга библиотека), бъг 2: Забелязах, че малка проста функция връща четно число (трудно е да се доверите на библиотека след това!).   -  person robocat    schedule 01.08.2016


Отговори (10)


Алгоритъмът RSA не е непременно остарял, но размерът на ключа е важен. Все още се използва редовно навсякъде. Дължина на RSA ключ от 3072 бита трябва да се използва, ако се изисква сигурност отвъд 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
Забелязвам, че чета документите на Microsoft за Crypto API wrapper, че алгоритми като 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, част 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 кодиране...)
  • Сигурни функции за произволни числа
  • с криптиране на шифри в режими (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. Шифроване на данни. 04 септември 2009. Изтегляне

Състояние: Трябва да работи добре.
Тази библиотека е разширена, така че да поддържа криптиране на Ansi и UnicodeStrings.
09/04/2009
* Delphi 2010 пакети
* трябва да се компилират без подсказки и предупреждения

person Francesca    schedule 10.09.2009

  • Както спомена Argalatyr, 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 все още е доста разумна опция. Особено след като не ми трябва криптиране, чието кракване ще отнеме буквално години.

Мисля, че директното използване на Crypto API на Microsoft може да е най-практичната опция.

person Bruce McGee    schedule 18.09.2009

Daniele Teti пусна колекция от филтри DataSnap за Delphi 2010, която включва хеш, шифър и компресия. Той споменава, че може да приложи и асиметрични шифри в бъдеще.

http://www.danieleteti.it/

Това е с отворен код, така че не се колебайте да допринесете.

person Bruce McGee    schedule 02.10.2009