溫馨提示本文共 1648 字,讀完大約需要下面一首歌的時間,讀懂大約需要把這首歌再循環一遍。

十年之前,在學校門口喊一聲“爲了聯盟”,可能會引來一羣哥們拉你去網吧,組團把阿爾薩斯暴打一頓;也可能會引來一羣哥們拉你到網吧廁所,把你暴打一頓。

十年之後,再到學校門口喊“爲了聯盟”,可能偶爾會有路過同學問句:“大叔,你也玩英雄聯盟嗎?”,更多的是一臉懵逼的議論:“這人不會是個傻子吧。”

不管是否願意承認,曾經風靡全球,曾經我們以爲永遠不會過氣的《魔獸世界》,如今已被 LOL、吃雞、王者榮耀等 PC、手機遊戲擠下“冰封王座”。

當年一起網吧通宵組團刷副本的兄弟,現在是依然陪在身邊,還是早已散落天涯?

當年翻山越嶺只爲見上一面的牧師妹子,現在是成了孩子阿姨,還是成了孩子他媽?

當年殺紅了眼、罵上了頭的部落與聯盟,現在是見面必須幹一架,還是互相問候一句“部落豬”“聯盟狗”之後一笑哈哈?

每個人都有自己不同的答案。而無論答案如何,魔獸世界對於我們而言,已經遠不止是一款經典的遊戲,更是一段燃燒的青春。

相信不少老魔獸玩家都還記得這樣一件“古董”——紙質密保卡。在那個盜號木馬猖獗,網吧滿是肉雞的年代,密保卡曾爲我們的遊戲賬號保駕護航很長一段時間。

圖一

圖二

賬號綁定密保卡之後,在登錄遊戲時,必須根據系統的提示輸入密保卡中的數字才能登錄成功。比如圖一,是和賬號綁定的密保卡,在登錄時要按系統(圖二)要求輸入 C6 格的數字 330,才能登錄成功。

當時只知道按照系統提示,拿着密保卡用,但是你有想過背後的工作原理是什麼嗎?爲什麼登錄要輸 C6 格的數字,爲什麼 C6 格的數字是 330, 爲什麼這張卡的 C6 格是 330,而別的卡不是?

直到最近學習混淆電路(GC:Garbled
circuits),無意間翻到曾經用過的密保卡,才豁然開朗:這一張紙密保卡不就是魔獸世界讓我們幫它執行的電路(函數)嗎?密保卡上印着的就相當於電路的真值對照表。

上個例子中,C 和 6,對應的真值表數值爲 330。其中 C、6、330 具體代表什麼,它們之間是什麼關係,是怎樣的計算邏輯等等,我們並不知道。但我們必須按照真值表鍵入 330,計算邏輯纔可以正確執行,進而通過密保驗證,進入遊戲。

遊戲密保工作原理與電路工作原理的類比就像下圖:

看到這,一些非理工科出身的同學肯定要問:電路(函數)和真值表是什麼鬼?所以我們也來補充點基本電路知識。

電路知識和真值表

先來了解一下門電路:

用以實現基本邏輯運算和複合邏輯運算的單元電路稱爲門電路。門電路有一個或多個輸入端和一個輸出端。一般用 1 表示真(正)、0 表示假(負)。最簡單常見的電路門有與、或、非、與非、或非、異或等幾種。它們的真值對照表如下:

簡單的門電路可以組成複雜門電路,不同的組合可以實現不同計算邏輯。比如奇偶校驗、判斷相等、比大小、加、減、乘、初、取餘等。複雜邏輯進而可以組成不同算法。

儘管我們不知道魔獸世界密保系統是怎樣的計算邏輯,但可以簡單粗暴地理解爲其複雜的計算邏輯也是由這些基本門電路構成的。

圖三

圖四

圖三爲 2 個異或門加 1 或非門的組合電路,功能是比較兩個 0-3 之間的整數是否相等。例如:整數 A 用二進制表示爲 A12+A0,整數 B 用二進制表示爲 B12+A0。只有 A1==B1 且 A0==B0 時,輸出結果 R 爲 1,否則爲 0。

圖四爲該電路的真值表,有了它我們就可以執行這個比較電路了。是不是跟密保卡很像?

混淆電路

瞭解了門電路之後,我們來聊下混淆電路(GC,Garbled Circuits)。

混淆電路又稱加密電路或亂碼電路,是姚期智教授(沒錯又是姚神)在上世紀 80 年代發明的一種很牛的技術。它可以讓兩個人針對某個算式來計算答案,而不需要知道他們在計算時所輸入的數字。

主要做法是對真值表進行加密和混淆,在讓對方不知道真實輸入和電路邏輯的前提下可以執行電路。由於整個過程比較複雜,這裏不再贅述。混淆電路配合不經意傳輸 ( OT,
Oblivious Transfer) 協議可以實現安全多方計算中的兩方計算。

由於門電路可以直接在 CPU 上執行,因而具有較高的可移植性,可以在不同的平臺執行,又可以分片執行。混淆電路除具備門電路的優勢外,還可以保證計算數據和計算邏輯的隱私安全。而我們將算法轉化爲混淆電路後,則可以賦予其混淆電路的種種優點。

當然,將算法混淆電路化之後,也會讓計算量大幅增加。隨着算力的指數級增長,這一問題很快會迎刃而解。

最後打個“廣告”:密保卡還留着的同學,可以聯繫作者換取不鏽鋼臉盆,一張換一個盆,先到先得哦!

參考文獻

1 Yao, Andrew Chi-Chih. "How to generate and exchange secrets." Foundations
of Computer Science, 1986., 27th Annual Symposium on. IEEE, 1986

2 Rosulek, Mike. "Secure Your Data and Compute on It, Too." XRDS:
Crossroads, The ACM Magazine for Students 21.3 (2015): 36-41.

關注我們

戳閱讀原文,訪問 PlatON 官網!

來源鏈接:mp.weixin.qq.com