Domanda

Sto cercando una libreria di crittografia gratuita e aggiornata per Delphi 2010 che implementa RSA e AES (Rijndael).

Voglio una libreria gratuita perché ho intenzione di scrivere e pubblicare del codice di esempio che lo utilizzerà.

Una versione Delphi 2010 di TurboPower LockBox è stata pubblicata sul SongBeamer , che implementa entrambi questi, ma sono preoccupato che stia diventando un po 'vecchio. Ad esempio, dimensioni ridotte delle chiavi RSA e nessuna nuova funzionalità di sicurezza per molti anni.

Aggiornamento: La percezione che LockBox non sia aggiornata o che manchi di funzioni importanti non è corretta? È ancora rilevante per lo sviluppo della produzione? (In particolare le dimensioni della chiave RSA)

È stato utile?

Soluzione

L'algoritmo RSA non è necessariamente obsoleto, ma la dimensione della chiave è importante. È ancora usato regolarmente dappertutto. Una lunghezza della chiave RSA di 3072 bit dovrebbe essere usata se la sicurezza è richiesta oltre 2030. Questa è solo una funzione dei miglioramenti della potenza di calcolo e non una debolezza dell'algoritmo.

Stavo guardando il LockBox prima di SongBeamer iniziando a mantenerlo (Delphi 2007) ho trovato RSA instabile - solo crash o produzione di risultati errati di volta in volta. Tuttavia, potrebbe essere stato corretto da allora. Se lo utilizzerai, assicurati che supporti le lunghezze di chiave necessarie, quindi crea alcuni test automatici con input e output noti. Assicurati che sia stabile. In tal caso, utilizzalo con ogni mezzo.

Puoi anche utilizzare l'API Microsoft Crypto per eseguire la crittografia RSA. Ho scritto un wrapper per Delphi 2007 , ma non l'ho aggiornato per Unicode (lo so , mi vergogno). Qualcun altro potrebbe essere in grado di aggiornarlo per funzionare facilmente con Unicode.

Un'altra opzione sarebbe quella di utilizzare le funzioni di crittografia di .NET Framework tramite l'interoperabilità COM o qualcosa del genere.

Altri suggerimenti

TurboPower LockBox 3.1.0 è ora disponibile. Supporta:

  • Delphi 2007 e Delphi 2010
  • Unicodestrings per Delphi 2010
  • Cifre AES, DES, 3DES, Blowfish e Twofish
  • Un lungo elenco di modalità di concatenamento di blocchi
  • hash MD5 e SHA1
  • Crittografia, decrittografia, firma e verifica RSA
  • Chiavi RSA a lunghezza variabile - Quasi nessun limite sull'intervallo.
  • Codice test unità D
  • Salatura automatica
  • Corretta gestione degli IV (contrariamente a DCPcrypt)
  • White box, gratuito e open source
  • Codice sorgente nativo visibile al 100% (senza DLL)

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

Ciao Bruce, uso questa libreria da Delphi 5,

Delphi Encryption Compedium Part I v.5.2

  • Riscrittura completa dell'ex DEC 3, aggiornamento a DEC 5.1 (rilasciato nel 2006)
  • Molti cipher (Blowfish, Twofish, 3DES, Rijndael ...)
  • Molti hash (MD2 / 4/5, SHA1-512, RipeMD128-320 ...)
  • Funzioni checksum (CRC32, CRC16 ...)
  • Funzioni di conversione del testo (MIME Base 64, XX / UU Coding ...)
  • Funzioni sicure di numeri casuali
  • con crittografia Cipher in modalità (CTS / CBC / CFB / OFB / ECB ...)
  • Orientamento completo e semplice agli oggetti
  • Core ottimizzato e veloce
  • Supporta ANSI e Unicode in D2009 (e sotto usando WideStrings) ...

È Freeeware e With Sorce Code, purtroppo non implementa RSA.

Sembra che il il lavoro D2010 è terminato :

TurboPower LockBox . Crittografia dei dati . 04 settembre 2009 . Scarica

Stato: dovrebbe funzionare correttamente.
Questa libreria è stata estesa in modo da supportare la crittografia di Ansi e UnicodeStrings.
09/04/2009
    * Pacchetti Delphi 2010
    * dovrebbe compilare senza suggerimenti e avvertimenti

Non so esattamente cosa intendi con "lungo nel dente" (vecchio?), ma preferirei Lockbox, perché fornisce tutto ciò di cui hai bisogno. Ad eccezione dell'aggiornamento del 2009, le ultime modifiche ufficiali sono state apportate nel 2003. Ma ehi, se funziona, funziona.

Per il codice di esempio LockBox potrebbe essere ok, ma non lo userei più in produzione. La crittografia dura "a lungo nel dente". Gli algoritmi invecchiano. Difetti precedentemente non scoperti, tecniche di crittografia migliorate, progressi matematici, aumento della potenza del processore rendono una volta sicuri algoritmi e dimensioni delle chiavi non più sufficienti. 3DES, MD5, SHA-1 sono già considerati non sufficienti. Gli attacchi contro AES sono stati recentemente pubblicati ( http://eprint.iacr.org/2009/374). La dimensione minima consigliata della chiave RSA è ora di 1024 bit, mentre le chiavi 2048 e 3072 sono consigliate se i dati devono essere protetti per anni. Lockbox offre solo chiavi di 1024 bit o meno . È necessario selezionare anche la modalità di cifratura a blocchi corretta. E la classe LockBox TLbRijndael (AES) per impostazione predefinita utilizza la BCE che presenta difetti noti e non offre altro che CBC. A causa dell'importanza della sicurezza elettronica acquisita in questi anni e delle conseguenti ricerche sia dei bravi che dei cattivi, una biblioteca di sette anni è davvero vecchia: basta ricompilarla e aggiungere il supporto per le stringhe UTF-16 non è sufficiente. Essere consapevoli del fatto che la falsa sicurezza è peggio di nessuna sicurezza. Se viene detto a un amministratore di sistema "non abbiamo alcuna sicurezza in atto" lavorerà per implementare la sicurezza da solo (ad esempio IPSec, VPN o simili). Se gli viene detto "sì, abbiamo RSA e AES!" si sentirà bene, anche se l'implementazione di AES e RSA è obsoleta e non è più sicura.

Non l'ho provato in D2010, ma DCPcrypt apparentemente funziona in D2009.

Libreria Cody di Fundamentals ha implementazioni per entrambi AES e crittografia RSA. Non ho usato la libreria, quindi non posso commentare la sua qualità.

Sembra che ci siano molte implementazioni gratuite di Aph Delphi. Sentiti libero di aggiungere i tuoi preferiti qui .

Non sembrano esserci tante implementazioni RSA gratuite e pochissime librerie che offrono entrambe.

Sembra che LockBox sia ancora un'opzione abbastanza ragionevole. Soprattutto dal momento che non ho bisogno della crittografia che impiegherà letteralmente anni a decifrare.

Penso che usare direttamente l'API Crypto di Microsoft potrebbe essere l'opzione più pratica.

Daniele Teti ha rilasciato una raccolta di filtri DataSnap per Delphi 2010, che include hash, cifratura e compressione. Dice che potrebbe anche implementare cifre asimmetriche in futuro.

http://www.danieleteti.it/

Questo è open source, quindi non esitate a contribuire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top