2009-09-09 42 views
24

Tôi đang tìm thư viện mã hóa miễn phí và cập nhật cho Delphi 2010 triển khai RSA và AES (Rijndael).Thư viện mã hóa miễn phí cho Delphi

Tôi muốn có một thư viện miễn phí vì tôi định viết và xuất bản một số mã mẫu sẽ sử dụng nó.

Phiên bản Delphi 2010 của TurboPower LockBox đã được đăng lên trang web SongBeamer, thực hiện cả hai, nhưng tôi lo ngại rằng nó hơi cũ. Ví dụ: kích thước khóa RSA nhỏ và không có tính năng bảo mật mới trong nhiều năm.

Cập nhật: Nhận thức rằng LockBox đã lỗi thời hoặc thiếu các tính năng quan trọng không chính xác? Nó vẫn còn liên quan đến phát triển sản xuất? (Riêng kích thước khóa RSA)

+7

Mã hóa "dài trong răng" như thế nào? Nó vẫn hoạt động, phải không? Thuật toán là một thuật toán. :-) –

+2

Lockbox đơn giản là nó vẫn hoạt động tốt, các cổng mà SongBeamer đã hỗ trợ Unicode. Những thay đổi năm 2010 sẽ không đáng kể, rất có thể là thêm một phiên bản kiểm tra trình biên dịch. – skamradt

+0

@Nick. Trong một chuỗi nhận xét trên một trong các bài đăng trên blog của bạn, Luigi cho rằng kích thước khóa RSA của LockBox giờ đây quá nhỏ đối với một số ứng dụng và thiếu một số tính năng mã hóa mới hơn. Điều này làm cho tôi tự hỏi những thư viện miễn phí khác có sẵn. –

Trả lời

13

Thuật toán RSA không nhất thiết đã lỗi thời, nhưng kích thước khóa là quan trọng. Nó vẫn được sử dụng thường xuyên khắp nơi. Phải sử dụng độ dài khóa RSA 3072 bits nếu yêu cầu bảo mật vượt quá 2030. Đây chỉ là một chức năng của những cải tiến về công suất tính toán chứ không phải là điểm yếu trong thuật toán.

Tôi đã xem LockBox trước SongBeamer bắt đầu duy trì nó (Delphi 2007) Tôi thấy RSA không ổn định - chỉ bị lỗi hoặc tạo ra kết quả sai theo thời gian. Nó có thể đã được cố định kể từ đó mặc dù. Nếu bạn định sử dụng nó, hãy đảm bảo nó hỗ trợ độ dài khóa bạn cần, và sau đó tạo một số kiểm tra tự động với các đầu vào và đầu ra đã biết. Hãy chắc chắn rằng nó chạy ổn định. Nếu có, hãy sử dụng nó bằng mọi cách.

Bạn cũng có thể sử dụng API Crypto của Microsoft để thực hiện mã hóa RSA của mình. Tôi đã viết một wrapper cho Delphi 2007, nhưng đã không cập nhật nó cho Unicode (tôi biết, xấu hổ về tôi). Người khác có thể cập nhật nó để làm việc với Unicode dễ dàng.

Một tùy chọn khác sẽ là sử dụng các chức năng mã hóa Khuôn khổ .NET thông qua khả năng tương tác COM hoặc thứ gì đó.

+0

+1 cho trình bao bọc API Crypto. –

+0

Tôi chú ý đọc [Crypto API wrapper Microsoft docs] (http://msdn.microsoft.com/en-us/library/aa375549.aspx) các thuật toán như SHA-256 và SHA-512 không được hỗ trợ bên dưới Windows XP SP3 . Có thể là một vấn đề nếu bạn đang sản xuất các ứng dụng cần chạy ở những nơi xa xôi, nơi họ vẫn có thể chạy XP SP2. – rossmcm

+0

Trình bao bọc API Crypto API khác - http://cc.embarcadero.com/item/17598 – naXa

1

Tôi chưa thử trong D2010, nhưng DCPcrypt được cho là hoạt động trong D2009.

+0

Tôi đã thấy điều này. Di chuyển từ Delphi 2009 sang Delphi 2010 sẽ không đáng kể. Thật không may, nó không thực hiện RSA. Ít nhất không phải là tôi có thể thấy. –

+0

Tôi nghĩ bạn nói đúng - tôi đã tập trung vào AES. – Argalatyr

9

Hình như D2010 work is done:

TurboPower Hộp khóa. Mã hóa dữ liệu. Sep 04 2009. Download

Trạng thái: Nên hoạt động tốt.
Thư viện này đã được mở rộng để nó hỗ trợ mã hóa Ansi và UnicodeStrings.
09/04/2009
* Delphi 2010 gói
* nên biên dịch mà không gợi ý và cảnh báo

5
  • Như đã đề cập bởi Argalatyr, DCPCrypt làm việc với Delphi 2009, nhưng nó không làm RSA;

  • ChillKat không hỗ trợ RSA và AES cho Delphi, nhưng không miễn phí;

  • Sergey Kirichenko đã triển khai Rijndael miễn phí mà bạn có thể tải xuống tại đây: http://rcolonel.tripod.com/dwnload/rc_rnd.zip. Các tập tin là ngày tháng 11 năm 2000, vì vậy tôi không biết nếu nó sẽ làm việc trực tiếp trong Delphi mới hơn.

  • Đã từng là một tệp zip có mã Delphi để tải xuống tại đây: http://ace.ulyssis.student.kuleuven.ac.be/~triade/GInt/bin/RSA.zip, nhưng nhà phát triển có thể đã hoàn thành nghiên cứu của mình và trường đại học đã xóa trang chủ của anh ấy. Trên this chinese webpage Tôi có thể xem nội dung của tệp (tìm kiếm RSA.pas trên trang và nhấp vào liên kết).

Tôi không biết chính xác ý bạn là "dài trong răng" (cũ?), Nhưng tôi chỉ sử dụng Lockbox, vì nó cung cấp mọi thứ bạn cần. Ngoại trừ bản cập nhật năm 2009, những thay đổi chính thức cuối cùng đã được thực hiện vào năm 2003. Nhưng này, nếu nó hoạt động thì nó hoạt động.

12

Hi Bruce tôi sử dụng thư viện này kể từ Delphi 5,

Delphi Encryption Compedium Part I v.5.2

  • Hoàn Rewrite của cựu 03 Tháng 12, Cập nhật đến ngày 05 tháng 12.1 (phát hành vào năm 2006)
  • Nhiều thuật toán mã hóa (Blowfish, Twofish, 3DES, Rijndael ...)
  • Nhiều Hashs (MD2/4/5, SHA1-512, RipeMD128-320 ...)
  • Chức năng Checksum (CRC32, CRC16 ...)
  • Chức năng chuyển đổi văn bản (MIME cơ sở 64, XX/UU mã hóa ...)
  • Chức năng an toàn số ngẫu nhiên
  • với mã hóa thuật toán mã hóa trong chế độ (CTS/CBC/CFB/OFB/ECB ...)
  • Đối tượng đầy đủ và dễ dàng theo định hướng
  • cao được tối ưu hóa, lõi nhanh
  • Hỗ trợ ANSI và Unicode trong D2009 (và dưới bằng cách sử dụng WideStrings) ...

là Freeeware và Với Sorce Mã, tiếc là không thực hiện RSA.

+0

Nó đã chuyển sang mã google: http://code.google.com/p/delphidec/ Một điều nhỏ tôi thích về DEC là, bạn chỉ cần bao gồm 1 dir so với 3 dirs với DCPCrypt. –

2

Đối với mã mẫu Mã khóa có thể là ok, nhưng tôi sẽ không sử dụng nó trong sản xuất nữa. Mã hóa không đi "dài trong răng". Thuật toán trở nên cũ. Những sai sót trước đây chưa được khám phá, các kỹ thuật mã hóa được cải thiện, các tiến bộ toán học, tăng sức mạnh xử lý làm cho các thuật toán an toàn và kích thước khóa không còn đủ an toàn nữa. 3DES, MD5, SHA-1 đã được coi là không đủ. Các cuộc tấn công chống lại AES đã được công bố gần đây (http://eprint.iacr.org/2009/374). Kích thước khóa RSA được đề xuất tối thiểu hiện là 1024 bit, trong khi các khóa 2048 và 3072 được khuyến nghị nếu dữ liệu cần được bảo vệ trong nhiều năm. Lockbox chỉ cung cấp các khóa 1024 bit hoặc ít hơn. Chế độ mã hóa khối bên phải cũng phải được chọn. Và LockBox TLbRijndael (AES) lớp theo mặc định sử dụng ECB đã biết sai sót, và không cung cấp bất cứ điều gì nhiều hơn CBC. Do sự an toàn điện tử quan trọng đã đạt được trong những năm này, và nghiên cứu hậu quả của cả những kẻ tốt và xấu, thư viện bảy tuổi thực sự cũ - chỉ biên dịch lại và thêm hỗ trợ cho chuỗi UTF-16 là không đủ. Xin lưu ý rằng bảo mật giả tồi tệ hơn là không có bảo mật nào cả. Nếu một quản trị viên hệ thống được thông báo rằng "chúng tôi không có bất kỳ bảo mật nào", anh ta sẽ làm việc để thực hiện bảo mật (IPSec, VPN hoặc tương tự). Nếu anh ta nói "có, chúng tôi có RSA và AES!" anh ấy sẽ cảm thấy ổn, ngay cả khi việc triển khai AES và RSA của bạn đã lỗi thời và không còn an toàn nữa.

+0

Người xuống hạng có thể giải thích lý do tại sao? Chỉ cho tôi biết tôi đang ở đâu sai, vui lòng ... –

0

Dường như có rất nhiều triển khai AES Delphi miễn phí. Vui lòng thêm mục yêu thích của bạn here.

Dường như không có nhiều bản triển khai RSA miễn phí và rất ít thư viện cung cấp cả hai.

Dường như LockBox vẫn là một lựa chọn khá hợp lý. Đặc biệt là kể từ khi tôi không cần mã hóa mà sẽ mất nhiều năm để crack.

Tôi nghĩ rằng việc sử dụng Crypto API của Microsoft trực tiếp có thể là tùy chọn thực tế nhất.

0

Daniele Teti đã phát hành bộ sưu tập các bộ lọc DataSnap cho Delphi 2010, bao gồm băm, mật mã và nén. Ông đề cập rằng ông cũng có thể thực hiện mật mã bất đối xứng trong tương lai.

http://www.danieleteti.it/

Đây là nguồn mở, vì vậy vui lòng đóng góp.

14

Hộp khóa TurboPower 3.1.0 hiện đã được phát hành. Nó hỗ trợ:

  • Delphi 2007 và Delphi 2010
  • Unicodestrings cho Delphi 2010
  • AES, DES, 3DES, Blowfish và Twofish mật mã
  • Một danh sách dài các chế độ block chaining
  • MD5 và SHA1 băm
  • Mã hóa RSA, giải mã, chữ ký và xác minh
  • Độ dài thay đổi Phím RSA - Hầu như không có bất kỳ giới hạn nào trong phạm vi.
  • D-Unit mã kiểm tra
  • Automatic muối
  • mangement đúng cách IV (trái ngược với DCPcrypt)
  • White Box, miễn phí và mã nguồn mở
  • 100% có thể nhìn thấy mã nguồn bản địa (không của DLL)

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

1

Fundamentals Cody Library h như triển khai cho cả mã hóa AES và RSA. Tôi đã không sử dụng thư viện tuy nhiên vì vậy không thể bình luận về chất lượng của nó.

Các vấn đề liên quan