Come accedere a un file INI crittografato da C su un sistema embedded con poca RAM

0

Voglio crittografare un file INI usando un programma Delphi su un PC Windows.

Allora ho bisogno di decriptare & accedervi in C su un sistema embedded con poca RAM.

Lo farò una volta & scarica tutte le informazioni; Non accederò in modo consueto al file INI ogni volta che il mio programma ha bisogno di dati dal file.

Qualche consiglio su quale crittografia usare? Niente di troppo pesante, abbastanza buono per "Sicurezza attraverso l'oscurità" e FOSS per Delphi & C.

E come posso decifrare, ottenere tutte le informazioni dal file INI - usando la minore RAM possibile, e quindi liberare ogni RAM allocata?

[Aggiorna] Attualmente utilizzo un Atmel UC3, anche se non sono sicuro che sarà il caso finale. Ha 512kB di falsh e amp; 128kB di RAM. Per un file INI, sto parlando di max 8 sezioni, con un totale di max 256 voci, ciascuna max 8 caratteri.

Ho scelto INI (ma non sono sposato con esso), perché in passato ho avuto grossi problemi quando cambia il formato di un campo di dati, indipendentemente dal fatto che sia binario o di testo.

Per tex, preferisco il formato gratuito di INI (su PC), ma suppongo che potrei passare a line_1=data_1, line_2=data_2 e accettare che se aggiungo nuovi campi nelle future erleases del software devono arrivare alla fine, anche se è non bello se letto direttamente dagli umani.

Suppongo che se scelgo un file di testo in formato fisso non avrò mai bisogno di avere più di una riga nella RAM alla volta ...

[Verdict] andrò con TEA o AES (tbd). Dividerò la funzionalità in due parti: 1) decrittografata in un file di testo semplice, 2) la analizzo come un file INI e se riscontro problemi di memoria, allora cambio in un formato line_1=data_1, line_2=data_2 .

Grazie per il tuo aiuto.

    
posta Mawg 07.11.2012 - 03:11
fonte

2 risposte

2

Dai un'occhiata a TEA

(Con "poca RAM" ho assunto qualcosa come 1-10K in qualcosa di simile a un PIC)

Per quanto riguarda come leggere il file INI basato sul testo e in particolare INI non è il formato corretto da utilizzare per un sistema embedded vincolato di risorse (in particolare la memoria). Dato che stai usando la crittografia, non è che tu debba attenersi a uno standard aperto e ampiamente leggibile per l'archiviazione dei dati.

Il PC che utilizza per crittografare i file ha (a tutti gli effetti) una risorsa infinita e può preformare un'elaborazione infinitamente complessa in pochissimo tempo rispetto a tutto il sistema incorporato. Pertanto è necessario scaricare quanto più lavoro possibile sul PC e ridurre al minimo il lavoro che il sistema incorporato deve fare.

Nel tuo caso, scriverei un file binario nel formato richiesto dal sistema embedded (banale in Delphi). Una volta che il software funzionava, il livello di crittografia può essere aggiunto e testato. Se necessario, questa potrebbe essere un'applicazione separata che accetta un file INI e genera una rappresentazione binaria per il dispositivo incorporato.

Se è necessario utilizzare un file INI, il modo più semplice è quello di leggere l'intero file in memoria, decodificare ed elaborare lo stream mentre si va. Poiché non hai definito il tipo di dati e quanto conserverà ini, è quindi impossibile suggerire una strategia ottimizzata.

    
risposta data 07.11.2012 - 05:13
fonte
1

Che ne dici di qualcosa come RC4 / ARCFOUR ?

Sul PC - la crittografia dovrebbe essere banale - scegliere una buona chiave ...
Sul dispositivo leggi, decrittalo, memorizza in un albero .... supponendo che non possano facilmente osservare la tua memoria.

    
risposta data 07.11.2012 - 04:00
fonte

Leggi altre domande sui tag