2013-03-15 16 views
5

Ho bisogno di un buon algoritmo di cifratura per un microcontrollore PIC. Dopo alcune ricerche su google, sembra che XXTEA sia l'unica opzione, tuttavia, "XXTEA is vulnerable to a chosen-plaintext attack requiring 2^59 queries and negligible work".XXTEA è un buon algoritmo di crittografia per un microcontrollore PIC?

Non sono bravo in crittografia, quindi vorrei chiedere: quanto è accurata la dichiarazione di cui sopra? Posso utilizzare XXTEA in un'applicazione di sicurezza commerciale? Se no, c'è qualche algoritmo disponibile che potrei usare per il mio sistema embedded?

+0

Perché non utilizzare AES? – GameScripting

+2

http://crypto.stackexchange.com/questions/570/types-of-cryptography-for-a-4-8-bit-microcontroller ha una discussione ad alto livello. Quanta memoria hai? – Gilles

+0

@GameScripting: io uso 18F13K50 quindi ha memoria limitata. @ Gilles: grazie, ho 512 KB di RAM, la memoria di programma dipende da altre funzionalità, ma suppongo di avere 2-3 KB – user2174870

risposta

11

Non è possibile sapere cosa rende sicuro un algoritmo di crittografia. Nessuno sa cosa rende sicuro un algoritmo di crittografia. I migliori che abbiamo sono "algoritmi che hanno sostenuto pesanti controlli da centinaia di crittografi durante molti anni, e sono ancora relativamente incolumi". Questo è il caso per AES, non per XXTEA. Potremmo notare che l'attacco su XXTEA è ancora molto costoso, al limite del possibile e probabilmente non applicabile alla maggior parte delle situazioni "commerciali", ma ancora, questo algoritmo è stato dimostrato a fiocchi. In quanto tale, se apprezzi la tua sicurezza, non essere creativo con la tua crittografia; utilizzare standard ben controllati.

Perché si desidera utilizzare XXTEA? Che cosa fa per te, che AES no? Si consiglia di dare un'occhiata a this question per alcuni suggerimenti su implementazioni di AES per alcuni microcontrollori PIC.

(Il criterio di progettazione principali di tè e dei suoi derivati ​​come xxtea era di avere compatta codice sorgente, in modo che potesse essere imparato a memoria e digitato di nuovo su un computer. Questo non si traduce immediatamente alla compattezza del compilato codice. (X *) Gli algoritmi TEA tendono ad essere lenti e fare affidamento su operazioni a 32 bit che sono inadatte per microcontrollori di piccole dimensioni.)

+0

Ottima risposta! Un pignolo è che le tue prime due frasi dovrebbero davvero dire: "Non puoi sapere se un algoritmo di crittografia è sicuro, nessuno sa che se un particolare algoritmo è sicuro." Un algoritmo sicuro è quello in cui è computazionalmente irrealizzabile da rompere. Inoltre, un cifrario con una chiave della stessa lunghezza del testo in chiaro è indistruttibile (semplicemente non pratico). Se c'è qualche ripetizione nella chiave, allora la cifra è fragile, ma non necessariamente computazionalmente fattibile. –

+0

grazie Thomas, guarderò quelle AES. Forse ho bisogno di cambiare IC per AES – user2174870

Problemi correlati