2010-05-06 23 views
8

Ciao vorrei conoscere la migliore tecnica di crittografia per la crittografia dei file di testo e l'ecryption.Codifica/decrittografa il file di testo in Delphi?

mio scenario:

ho software avere due tipi di utenti Administartor e Operatori. Il nostro requisito è quello di crittografare il file di testo quando l'amministratore immette i dati utilizzando la GUI e lo salva. Quel file crittografato sarebbe stato inserito per Operator e hanno solo bisogno di selezionarlo e usare quel file. Qui il file dovrebbe essere decrittografato automaticamente per ulteriori calcoli quando Operator seleziona quei file.

Please help me quale tecnica di crittografia/decrittografia dovrei usare?

risposta

19

Una regola d'oro quando si cripta è capire che la crittografia nel suo complesso è molto difficile.

Ci sono una moltitudine di approcci/algoritmi diversi tra cui scegliere e nessun singolo algoritmo/metodo può essere considerato il migliore. Tutto dipende dalle vostre esigenze e possibilità di influenzare la distribuzione delle applicazioni ecc.

Un esempio di una situazione potenzialmente problematica è che nel vostro scenario la "chiave" di decrittografia deve essere distribuita con le applicazioni e potrebbe renderla non sicura . Questo è generalmente indicato come il problema "Distribuzione chiave".

Un buon punto di partenza per leggere la crittografia è http://en.wikipedia.org/wiki/Cryptography.

Per quanto riguarda la roba già pronto per Delphi ci sono alcuni buoni pacchetti disponibili:

pagine di Torry ha anche una lunga lista di componenti:

vi consiglio caldamente di utilizzare alcune delle implementazioni esistenti e non iniziare a fare il proprio, dal momento che la creazione di un sicuro algo cripto di lavoro è molto, molto difficile.

+0

DEC (The Delphi Encryption Compendium) è molto potente. Buona raccomandazione! –

+2

Windows stesso fornisce un'implementazione molto buona per vari algoritmi crittografici che utilizzano Windows CryptoAPI. Ti consiglio di utilizzare CryptoAPI, o di scrivere una classe wrapper attorno alle funzioni CryptoAPI, e usarle nel tuo codice. – vcldeveloper

+0

Grazie, per avermi offerto un buon inizio –

3

Quando si sposta un messaggio di crittografia da luogo/applicazione a un altro, uno dei problemi da considerare è dove memorizzare le chiavi di crittografia/decrittografia.

Come ho visto il tuo scenario, sembra che sia costruito nelle tue applicazioni. Se è così, ricordati di usare un sacco di trucchi per nasconderlo: le stringhe di password dovrebbero essere divise in diversi bit e solo aggiunte in un memorizzato protetto, che deve essere contrassegnato come non pagabile (altrimenti la password potrebbe essere vista nel file di paging).
Le stesse regole per il contenuto non crittografato (il file di testo). È meglio che non venga mai salvato (anche temporaneamente) non crittografato su disco. Se viene salvato, sovrascrive la data con spazzatura dopo l'uso, prima di eliminarla.

Un altro approccio (in particolare se si utilizzano già componenti di compressione) è che il file (testo) può essere compresso utilizzando una password.

3

Sinceramente, non esiste una tecnica "migliore".Dipende fondamentalmente dalla sensibilità dei dati che stai cercando di proteggere e dal numero di persone che potrebbero accedere a questi dati. Ciò che potrebbe essere "il migliore" per me potrebbe essere un puro eccesso per il tuo progetto. Nel tuo caso, puoi utilizzare qualsiasi metodo di crittografia a doppia chiave. O asymmetric key. Fondamentalmente, l'amministratore ha una chiave e l'operatore ha l'altra. L'amministratore può quindi crittografare i file, ma non sarà in grado di decrittografarli nuovamente, a meno che non abbia una chiave operatore. L'operatore può decrittografare il file e, se necessario, crittografare un file a cui solo un amministratore può accedere. (Le chiavi asimmetriche cifrano in entrambi i modi.)

Esistono diverse soluzioni che utilizzano questi tasti asimmetrici. Quello che sarebbe meglio è quello che potresti aggiungere al tuo progetto nel modo più semplice pur offrendo una protezione sufficiente per le tue esigenze.

Costruire il proprio algoritmo di chiave asimmetrica è anche possibile, se sei un vero mago della matematica. I calcoli sono complessi e coinvolgono numeri primi estremamente alti nella maggior parte delle soluzioni. Come ha detto K. Sandell, trova una soluzione valida e esistente che soddisfi le tue esigenze nel modo migliore.

Problemi correlati