哪些加密库可以支持格式保留加密(FPE)?

时间:2014-11-06 14:37:30

标签: encryption

是否有可用的开源FPE实施?我不是加密专家,但我知道FPE背后的基本概念,我正在寻找一个通用库,它帮助我实现FPE的敏感数据,如电话号码,社会安全号码等。没有强大的编程语言偏好,但坚固性算法和实现很重要。

到目前为止我发现了:

但我还没有亲自使用它们。

是否有其他图书馆支持FPE,或者在不久的将来?建议使用以下哪些或其他原因?

2 个答案:

答案 0 :(得分:1)

Python上的简单且可扩展的库https://github.com/emulbreh/pyffx

答案 1 :(得分:0)

我为fpe创建了一个小的javascript(node)lib:

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

它使用prefix cipher方法。 来自维基百科:

  

在{0,...,N-1}上创建FPE算法的一种简单方法是为每个整数分配伪随机权重,然后按权重排序。通过将现有块密码应用于每个整数来定义权重。 Black和Rogaway将这种技术称为"前缀密码"并证明它与使用的分组密码一样好。

     

因此,要在域{0,1,2,3}上创建FPE,给定密钥K将AES(K)应用于每个整数,例如,给出

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

按重量排序[0,1,2,3]得到[3,1,2,0],所以密码是

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

此方法仅适用于较小的N值。对于较大的值,   查找表的大小和所需的加密次数   初始化表太大而不实用。