是否有可用的开源FPE实施?我不是加密专家,但我知道FPE背后的基本概念,我正在寻找一个通用库,它帮助我实现FPE的敏感数据,如电话号码,社会安全号码等。没有强大的编程语言偏好,但坚固性算法和实现很重要。
到目前为止我发现了:
但我还没有亲自使用它们。
是否有其他图书馆支持FPE,或者在不久的将来?建议使用以下哪些或其他原因?
答案 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值。对于较大的值, 查找表的大小和所需的加密次数 初始化表太大而不实用。