Functional-Encryption

使用功能加密進行軟體混淆的實際後果

  • August 6, 2013

我遇到了這篇文章,它描述了一種由 UCLA CS 教授 Amit Sahai 等人開發的方法,該方法使用函式加密來實現軟體混淆。文章引用的論文可在此處獲得。有沒有人消化了這篇論文並有更多的資訊可以分享?結果是否像文章所暗示的那樣具有開創性?

特別是,是否有人清楚地知道該方法可能會混淆實現的哪個方面?它僅適用於集成電路級別的硬體實現嗎?即使打開晶片後對手能夠跟踪和映射信號,它是否也適用?它是否適用於通用平台的軟體實現,即使對手完全控制了 CPU 和內部儲存器(例如在仿真器的情況下)?

結果是否像文章所暗示的那樣具有開創性?

這一結果將被證明是理論加密的一個非常重要的結果。與完全同態加密(Samuel 上面提到的)的類比是有用的,因為這是另一個眾所周知的結果,從理論的角度來看具有巨大的開創性,但即使多年後,這種結構也不是人們認為“實用的”。

有沒有人清楚地知道該方法可能會混淆實現的哪個方面?

混淆程序將隱藏實現的所有方面,除了輸出。這就是混淆的定義。嗯,大部分。一般來說,最自然的混淆定義是不可能實現的。在不涉及太多技術細節的情況下,本文展示瞭如何獲得一種稱為“不可區分混淆”的較弱的東西,鑑於不可能的結果,這被認為是您可能希望的最好的混淆類型。不幸的是,要準確地解釋從不可區分性混淆中得到的結果有點困難。作者在他們的論文中確實提到了這一點。

它僅適用於集成電路級別的硬體實現嗎?

在本文中,沒有什麼特別針對硬體的。您可以混淆任何程序、硬體或軟體。但也許混淆來自這樣一個事實,為了使用他們的混淆,您必須將您的程序表示為布爾電路(與、或、非門),而不是圖靈機或彙編程式碼或 C 或其他任何東西。這在理論文獻中是相當標準的,但卻是這類結構許多不切實際的根源。

即使打開晶片後對手能夠跟踪和映射信號,它是否也適用?它是否適用於通用平台的軟體實現,即使對手完全控制了 CPU 和內部儲存器(例如在仿真器的情況下)?

對對手沒有這樣的限制。從軟體層面考慮,混淆程序只是你交給對手的一大團 1 和 0。現在,對手可以對數據塊做任何牠喜歡的事情。安全保證(或多或少)是攻擊者可以從這些數據中獲得的唯一有用資訊是根據其選擇的輸入執行程序的能力。當然,這涵蓋了您想像對手完全控制執行混淆程序的硬體的情況。

引用自:https://crypto.stackexchange.com/questions/9497