【发布时间】:2011-12-22 05:35:31
【问题描述】:
我有兴趣做一个数据挖掘网站。 DB 中的数据非常敏感。
我想找到一种方法来加密数据库中的数据并向我的客户证明即使是我也无法读取数据。
问题是我可以在夜间在服务器端“批处理”关系,而且我的软件必须能够清楚地读取数据。
你有什么想法吗?
【问题讨论】:
标签: encryption data-mining server-side sensitive-data
我有兴趣做一个数据挖掘网站。 DB 中的数据非常敏感。
我想找到一种方法来加密数据库中的数据并向我的客户证明即使是我也无法读取数据。
问题是我可以在夜间在服务器端“批处理”关系,而且我的软件必须能够清楚地读取数据。
你有什么想法吗?
【问题讨论】:
标签: encryption data-mining server-side sensitive-data
您应该考虑最基本的数据加密:RSA。 谷歌这个,很简单,加密有两个密钥,一个是公钥,另一个是私钥。让我们知道您的效果如何。
【讨论】:
你不可能不解密数据,但你的软件可以做到,只要你能控制你的软件。
某个地方需要一个密钥,这样软件才能解密数据,如果软件在您有权访问的计算机上运行,您就可以获得密钥。没办法。
您的客户要么必须相信您不会对数据进行任何恶意操作,要么他们必须自己(或使用其他服务)进行处理。
可能有一些方法可以使用同态加密(即你有一对函数enc(f1(a,b)) = f2(enc(a), enc(b))f1,f2),但这仅适用于一些非常有限的操作,专门为支持而设计的加密方案这很可能不适用于需要“数据挖掘”的东西。
【讨论】:
您没有根据报告描述您需要做什么。有很多方法可以对加密数据进行计算。我建议你从这两种方法开始。
查看本书Translucent Databases 2nd Edition by Peter Wayner。引用韦纳的话,“这本书仍然旨在帮助世界建立能够回答有用问题的数据库,而不会保留任何有用的信息。这些示例表明大多数数据库不需要填充世界的秘密和个人信息。如果客户端使用适量的加密,数据库不需要危险的一站式购物,为身份窃贼和其他有恶意的人预先考虑。”
如果您拥有密码学博士学位,并且有几十亿个周期要烧掉,您应该阅读Homomorphic Encryption。
【讨论】:
正如@vy32 所提到的,Homomorphic Encryption 提供了执行此操作的理论方法,但在今天并不实用。
请求anonymized而不是加密数据怎么样?
例如,您不需要客户姓名或国家 ID 来区分他们——匿名 ID 就可以了。另一个例子:一些数据值可以被散列,这样你就可以区分不同的实体,但不能区分它们是什么。数值可以按顺序给出,这样您就可以知道每一对中哪个更大,而不是精确的数量。对您来说不重要的字段,例如大多数应用程序中的个人姓名,可以简单地省略。
有一整套工作致力于匿名化,还有另一套工作致力于对匿名数据集进行去匿名化,但是通过一些简单的转换,您可以获得很长的路要走。 p>
【讨论】: