全密态要解决的问题重点在于,认为服务提供方是不可信的,即网络传输和数据库存储都可能存在数据泄露的风险,因此网络传输和数据库存储都要加密,且要求服务提供方无法自行解密,只有受信的客户端能解密。
由于常规的数据库设计,SQL执行层都是在数据库服务端,必然会涉及到对数据的访问和计算,因此最大的难点就在于如何在数据库自身无法解密数据的情况下还能对数据进行访问和计算。在这种限制下,就连最简单的等值查询都有技术挑战,除非使用确定性加密,但确定性加密,对于重复度高的数据,很容易破解,比如性别。
全密态的最终目标是全同态,即能支持任意类型的计算(比如 ,在不知道密钥的情况下,能计算出”1的密文加2的密文等于3的密文“)。虽然全同态至今已经发展了几十年,但现有的全同态方案效率仍然是极低,如果把全同态技术放在通用的数据库软件里,其性能的削减程度是无法接受的。
