張 正, 張方國
1.中山大學數據科學與計算機學院, 廣州510006
2.廣東省信息安全技術重點實驗室, 廣州510006
隨著對稱密碼和公鑰密碼的不斷發展, 僅僅對消息的加密已經不能滿足人類社會的安全需求.云計算、協同計算等新型計算模型的出現, 也使得對函數或電路的加密變得越來越重要.在交給代理商進行計算之前, 用戶希望不僅僅對輸入加密, 對函數本身也進行加密, 從而達到保護函數 “內部信息” 的目的.例如若醫院將疾病的診斷外包, 那么不僅病人的信息涉及隱私, 疾病的診斷方法也是醫院需要保護的信息.因此,對于函數或電路的加密成為一個新的研究熱點, 許多相關的密碼學方案也被提出.其中, 包括混淆、函數加密(functional encryption)、混淆電路(又稱混亂電路, 加密電路等)、隨機編碼(randomized encoding)等等.其中, 有兩個相近的概念——混淆和混淆電路.
混淆是由程序混淆[1]發展而來.學者們最初為了保護代碼安全而提出混淆的概念.也就是說, 混淆的目的是在保持程序功能的前提下, 使得程序內容 “不可讀”.電路混淆或者說函數混淆起始于 Hada 的研究[2].Hada 提出的混淆要求混淆后的程序相當于一個黑盒預言機, 除非函數是可學習的, 否則這種混淆的構造是不存在的.在 2001 年, Barak 等人[3]第一次提出了電路混淆的形式化定義, 并給出了可證明的安全定義——虛擬黑盒安全(virtual black box).這種安全定義除了電路輸出其他信息都不泄露.但是,Barak 等人在文章中表示, 虛擬黑盒混淆不具有通用構造方案……