2014-11-06 11 views
11

È disponibile un'implementazione open source FPE? Non sono un esperto di crittografia, ma sono a conoscenza dei concetti di base di FPE e sto cercando una libreria generica che mi aiuti a implementare FPE per dati sensibili come numeri di telefono, numeri di previdenza sociale, ecc. Nessuna preferenza per la programmazione, ma robustezza dell'algoritmo e l'implementazione sono importanti.Quali libbre di crittografia supportano Format-Preserving Encryption (FPE)?

Quello che ho trovato finora:

ma non li ho ancora utilizzati personalmente.

Esistono altre librerie che supportano FPE o saranno nel prossimo futuro? Quale di questi o altri sono raccomandati e perché?

+1

La cosa più importante da sapere su FPE (che è intrinsecamente deterministico) è che dovresti evitarlo a favore della crittografia semanticamente sicura quando possibile. – CodesInChaos

+1

Grazie per il promemoria, ma supponiamo per ora che ci siano applicazioni idonee di FPE. – wau

risposta

0

ho fatto un piccolo lib javascript (nodo) per FPE:

https://github.com/mderazon/node-fpe

Si utilizza un metodo prefix cipher. Da Wikipedia:

Un modo semplice per creare un algoritmo FPE in {0, ..., N-1} è assegnare un peso pseudocasuale per ogni intero, quindi ordinare in peso. I pesi sono definiti applicando un codice a blocchi esistente a ciascun intero. Black e Rogaway chiamano questa tecnica un "prefisso cifrato" e mostravano che era provabile quanto il codice a blocchi usato.

Così, per creare un FPE sul dominio {0,1,2,3}, data una chiave K applicare AES (K) per ogni intero, dando, per esempio,

weight(0) = 0x56c644080098fc5570f2b329323dbf62 
weight(1) = 0x08ee98c0d05e3dad3eb3d6236f23e7b7 
weight(2) = 0x47d2e1bf72264fa01fb274465e56ba20 
weight(3) = 0x077de40941c93774857961a8a772650d 

ordinamento [0,1,2,3] in peso dà [3,1,2,0], quindi la cifra è

F(0) = 3 
F(1) = 1 
F(2) = 2 
F(3) = 0. 

Questo metodo è utile solo per piccole v alori di N. Per valori maggiori, la dimensione della tabella di ricerca e il numero richiesto di crittografie su inizializzano la tabella diventa troppo grande per essere pratica.

Problemi correlati