同态加密在实际应用中的基本模型

同态加密定义:

同态加密技术可以实现在不知道明文数据的情况下就能够分析敏感数据,是一种不需要访问数据本身就可以加工数据的方法。经过同态加密的数据处理的输出=处理未加密数据的输出。

什么?这个定义太抽象?那我们来举个例子吧。

我有两个数据1和2,我希望能够得到这两个数据的和。我们假设1+2需要非常大的算力,我自己的电脑上没有办法完成这种计算,这个时候我就希望能够让服务器完成这种计算,但是我又不希望服务器看到我的数据1和2,于是我就生成了一对同态加密的公私钥,将1用公钥加密成x,2用公钥加密成y,将x和y发给服务器。服务器计算x+y=z,将z返还给我,服务器并不知道我的明文数据是1和2。我拿到了z后,用私钥进行解密,得到了结果就是3(同态加密的性质)。也就是说,我借助服务器完成了一个非常大的计算量,并且没有把我的数据泄露给服务器。

很牛逼是吧?但是这种密码技术涉及到大量复杂的数学计算,时间复杂度是一个很突出的问题,目前在实际应用中还需要解决很多问题。

同态加密的模型:

看了一些同态加密的例子,我以及我的老师总结出了一个同态加密应用的基本模型:首先这个模型中,客户需要借助服务器(云平台)完成客户端没有办法完成的大规模运算,其次客户又不希望将敏感数据透露给云平台。

一共有三个角色:Producer,Handler,Consumer。Producer和Consumer共用一套同态加密的公私钥。

Producer提供敏感数据并加密,将密文发送给Handler

Handler(一般是算力较强的平台)对提供的密文进行处理计算,得到计算的结果,提供给Consumer。

Consumer对结果用私钥解密,得到数据处理的结果。在上一个例子中,我既是Producer,也是Consumer。

同态加密的过程中,必须保证进行密文运算的Handler拿不到私钥,Handler只是起到完成大规模计算的作用,如果处理数据需要的计算量很小,Consumer直接就可以完成计算,也就不需要Handler,不需要同态加密了。

一句话总结就是:同态加密应用到需要第三方处理敏感数据的场合。

猜你喜欢

转载自blog.csdn.net/LOVETEDA/article/details/84852668