27

I'm looking for a free and up to date encryption library for Delphi 2010 that implements RSA and AES (Rijndael).

I want a free library because I plan to write and publish some sample code that will use it.

A Delphi 2010 version of TurboPower LockBox has been posted to the SongBeamer site, that implements both of these, but I'm concerned that it's getting a little old. For example, small RSA key sizes and no new security features for many years.

Update: Is the perception that LockBox is out of date or lacks important features incorrect? Is it still relevant for production development? (Particularly the RSA key sizes)

4

10 回答 10

16

TurboPower LockBox 3.1.0 现已发布。它支持:

  • 德尔福 2007 和德尔福 2010
  • Delphi 2010 的 Unicode 字符串
  • AES、DES、3DES、Blowfish 和 Twofish 密码
  • 一长串区块链模式
  • MD5 和 SHA1 哈希
  • RSA加密、解密、签名和验证
  • 可变长度 RSA 密钥 - 范围几乎没有限制。
  • D单元测试代码
  • 自动加盐
  • IV 的适当管理(与 DCPcrypt 相比)
  • 白盒,免费和开源
  • 100% 可见的本机源代码(无 DLL)

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

于 2010-10-25T23:48:15.650 回答
13

RSA 算法不一定过时,但密钥大小很重要。它仍然在各地定期使用。如果在 2030 年以后需要安全性,则应使用 3072 位的 RSA 密钥长度。这只是计算能力提高的功能,而不是算法的弱点。

在SongBeamer开始维护之前,我正在查看 LockBox (Delphi 2007)我发现 RSA 不稳定 - 只是不时崩溃或产生错误的结果。不过,从那以后它可能已经修复了。如果您要使用它,请确保它支持您需要的密钥长度,然后使用已知的输入和输出创建一些自动化测试。确保它运行稳定。如果是这样,那么一定要使用它。

您还可以使用 Microsoft Crypto API 进行 RSA 加密。我为Delphi 2007编写了一个包装器,但没有为 Unicode 更新它(我知道,真丢脸)。其他人可能能够轻松更新它以使用 Unicode。

另一种选择是通过 COM 互操作性或其他方式使用 .NET Framework 加密功能。

于 2009-09-11T05:27:53.547 回答
12

嗨布鲁斯我从 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 编码...)
  • 安全随机数函数
  • 在模式下使用密码加密 (CTS/CBC/CFB/OFB/ECB...)
  • 全面而简单的面向对象
  • 高度优化的快速核心
  • 支持 D2009 中的 ANSI 和 Unicode(及以下使用 WideStrings)...

是免费软件并带有 Sorce 代码,遗憾的是没有实现 RSA。

于 2009-09-10T03:50:21.363 回答
9

看起来D2010 的工作已经完成

TurboPower 密码箱数据加密2009 年 9 月 4 日下载

状态:应该可以正常工作。
这个库已经扩展,因此它支持 Ansi 和 UnicodeStrings 的加密。
09/04/2009
* Delphi 2010 软件包
* 应该在没有提示和警告的情况下编译

于 2009-09-10T00:35:55.927 回答
5
  • 正如 Argalatyr 所提到的,DCPCrypt与 Delphi 2009 一起工作,但它不支持 RSA;

  • ChillKat确实支持 Delphi 的 RSA 和 AES,但它不是免费的;

  • Sergey Kirichenko 制作了一个免费的 Rijndael 实现,您可以在此处下载:http ://rcolonel.tripod.com/dwnload/rc_rnd.zip 。这些文件的日期是 2000 年 11 月,所以我不知道它是否可以直接在较新的 Delphi 中工作。

  • 曾经有一个带有Delphi代码的zipfile可以在这里下载:http: //ace.ulyssis.student.kuleuven.ac.be/~triade/GInt/bin/RSA.zip,但开发人员可能完成了他的学习和大学删除了他的主页。在这个中文网页上,我可以看到文件的内容(在页面上搜索 RSA.pas 并单击链接)。

我不知道您对“长牙”(旧?)的确切含义,但我会选择 Lockbox,因为它提供了您需要的一切。除了 2009 年的更新,最后一次官方更改是在 2003 年。但是,嘿,如果它有效,它就有效。

于 2009-09-10T01:04:58.927 回答
3

对于示例代码 LockBox 可能没问题,但我不会再在生产中使用它。加密确实“长期存在”。算法变老了。以前未发现的缺陷、改进的密码分析技术、数学进步、增加的处理器能力使得曾经安全的算法和密钥大小不再足够安全。3DES、MD5、SHA-1 已经被认为是不够的。最近发布了针对 AES 的攻击 ( http://eprint.iacr.org/2009/374 )。建议的最小 RSA 密钥大小现在为 1024 位,而如果需要保护数据多年,建议使用 2048 和 3072 密钥。密码箱仅提供 1024 位或更少的密钥. 也必须选择正确的分组密码模式。并且 LockBox TLbRijndael (AES) 类默认使用具有已知缺陷的 ECB,并且不提供比 CBC 更多的东西。由于这些年来电子安全的重要性,以及随之而来的好人和坏人的研究,一个七年历史的库真的很老了——仅仅重新编译它并添加对 UTF-16 字符串的支持是不够的。请注意,虚假的安全性比根本没有安全性更糟糕。如果系统管理员被告知“我们没有任何安全措施”,他将自己实施安全措施(例如 IPSec、VPN 等)。如果他被告知“是的,我们有 RSA 和 AES!” 即使您的 AES 和 RSA 实施已过时且不再安全,他也会感觉良好。

于 2009-09-10T15:08:54.463 回答
1

我没有在 D2010 中尝试过,但DCPcrypt应该可以在 D2009 中使用。

于 2009-09-09T22:45:03.257 回答
1

Fundamentals Cody Library实现了 AES 和 RSA 加密。我没有使用过这个库,但是不能评论它的质量。

于 2014-07-09T04:20:21.007 回答
0

似乎有很多免费的 Delphi AES 实现。随意在这里添加您的收藏夹。

似乎没有那么多免费的 RSA 实现,而且提供两者的库也很少。

看起来 LockBox 仍然是一个相当合理的选择。特别是因为我不需要需要数年才能破解的加密。

我认为直接使用微软的 Crypto API 可能是最实用的选择。

于 2009-09-18T13:37:04.713 回答
0

Daniele Teti 为 Delphi 2010 发布了一系列 DataSnap 过滤器,其中包括散列、密码和压缩。他提到他将来也可能实现非对称密码。

http://www.danieleteti.it/

这是开源的,所以请随时贡献。

于 2009-10-02T13:20:41.257 回答