加密演算法牛肉來了
這幾天在《新科學人》看到了
一篇文章,寫說一種終極的加密法將可以用來保護隱私。我有點意外,加密確實是保護資料的好方法,但是個資是要用的,加密起來的話就不能(直接)使用了;若要使用還得解密才行。只是...這個念頭才起來,我又想起確實有一個技術可以又加密資料,又確保資料可以使用。在我心裡評估那門技術是否能用在隱私保護的同時,我的雙眼也持續的在閱讀那篇文章。在我想通之前就看到了這篇文章提到的加密法就是我想到的那個技術 -- 「
同態加密」。
「同態加密」可能是「區塊鍊」之外,另一個本世紀初期最偉大的加密理論之一。即然扯到世紀等級的偉大加密法,那我就再扯一個絕對的遺珠「晶格加密」。晶格加密登場的目的是為了對抗量子運算,因為量子運算有能力在較短的時間內破解現行常用的RSA與橢圓曲線密碼學(ECC)。然而,晶格加密其實在上個世紀就已經發明出來了,只是當時的人們並不擔心量子運算,選擇了RSA,大約2000年的時候又選擇了ECC。對密碼學超級有興趣的朋友可以拿這些keyword去找相關資訊。此外,我又看到另一此新聞,顯示量子運算雖然還沒有普及,卻已經
有應用程式導入反制量子運算的加密演算法了。資訊真不是人讀的,日新月異啊!
扯完了。我們先回來看一下現實世界的問題吧。
守護20世紀的黑金
「黑金」指的就是「石油」,理由很簡單,因為它是黃金一般的重要資源。
而「資料」則是20世紀末人類發現的「新石油」。掌握資料的公司,比如谷歌、臉書、亞馬遜、阿里巴巴、百度、騰訊,在過去的二十年造成了深遠的影響,甚至還在繼續發展。就以本站「方格子」為例吧。方格子裡面充滿許多創作者留下的數位內容,以及許多使用者的使用足跡。某些內容閱讀量高,某些內容付費比例高。通過分析,方格子可以知道哪些作家能幫助網站留下使用者,以及知道哪些內容有最直接的變現能力,還可以進一步分析使用者來自的區域、年齡、性別,然後推薦該使用者喜歡的作品,精準行銷。甚至將分析出來的insight(洞見)包裝成商品再賣出去。
然而,並不是每家公司都有能力將資料轉換成有價值的資訊。方格子可能要先自我評估一下,自己有能力做這些分析嗎?粗淺的統計當然沒什麼問題,但是資料科學等級的分析恐怕要相關科系的專家才做得來。這可需要額外成本。養兩、三位這樣的員工,每年的成本可能就增加200萬了。投入這樣的成本值得嗎?一般中小企業真的需要「長期」配置這些專家嗎?如果方格子沒有那麼多的資料需要專家的長期投入,那麼聘用專職的資料科學家太划不來了。於是我們想到了「外包」。也就是找專注於資料採礦和機器學習的公司來分析。方格子只要付固定的成本,直接拿分析的結果就好了。
很快的,另一個問題出現了。既然資料就是「石油」,將石油交出去實在是一種瘋狂的行為。雖然外包能用合約控制,但是外包商拿著你的「石油」做了什麼你怎麼控制?專案結束後你怎麼確保將石油回收乾淨?有沒有可能外包商分析出什麼高價值的資訊卻沒有告訴你,反而拿出去另外兜售?這些利益搞不就比你的合約更誘人。
我在《目標最安全的端對端加密》裡提到一句話:人們對資訊安全的要求是即使想違約也違不了。
超級演算法來拯救了
密碼學家想,有沒有可能同時保護資料的機密性,又保持資料的可用性呢?「同態加密」(Homomorphic encryption)的使用場景誕生了。同態加密是一種全新的概念,並且在2009年初次被完整實現。然後在更多密碼學者的鑽研下,一個一個新的加密演算法如雨後春筍般誕生。
我們將同態加密用在前面提到的問題,也就是想要請外包的專家做數據分析,卻又不願意將資料交給他人。同態加密在這個場景上就可以先將資料加密,然後外包商要分析資料前得先將他們要做的分析運算提供給我們算出一個中介函數,接著用這個中介函數對加密過的資料運算,就可以直接算出分析的結果(或是分析結果仍是一種密文,需要再丟回來給我們解密回真正的結果)。如此就可以確保外包商看不到資料的原文,也可以限制外包商對資料做的運算。當然,外包商有時也不願意分享他們分析的運算(這是他們的商業機密),所以同態加密應該也支援一些做法,讓外包商能保護他們的分析運算。
然而,雖然同態加密很神奇卻有一個罩門,就是運算速度慢。各位應該知道,大數據運算、機器學習,不但資料量龐大,而且需要長時間的演算。如此再搭配效能不佳的同態加密,可以預見的在商業運用上會遇到瓶頸。這大概也是為什麼小弟多年前就看到同態加密一詞,同態加密在2022年卻還是被科學雜誌當成一種新穎的技術討論吧。
最後,我想說的是效能的問題遲早會被解決。最新一代的演算法效率已比2009年提出的初代演算法快上許多。許多雲端公司對這門技術的商用早已躍躍欲試。相信大規模商用的日子已經不遠了。