www.第四色,熟女少妇色综合图区,日本sm/羞辱/调教/捆绑视频,网站国产,亚洲国产成人久久综合一区77

混淆程序:代碼最安全的加密方式 IO存在性被證實(shí)但還難以抵御量子計(jì)算

2021-01-11 15:58:44來(lái)源:科技日?qǐng)?bào)

幾十年來(lái),計(jì)算機(jī)科學(xué)家一直都想驗(yàn)證是否存在絕對(duì)安全的方法來(lái)加密計(jì)算機(jī)程序,讓人們?cè)谑褂糜?jì)算機(jī)的同時(shí)卻無(wú)法破解其程序。

在2020年底,幾位學(xué)者成功找到了一種加密方式,讓計(jì)算機(jī)用戶無(wú)法通過(guò)獲取代碼破解程序。

加密程序代碼

首先要對(duì)其進(jìn)行混淆

不可區(qū)分混淆(indistinguishability obfuscation,簡(jiǎn)稱IO)是一種強(qiáng)大的加密算法,它不僅能隱藏?cái)?shù)據(jù)集,還能隱藏程序本身,從而實(shí)現(xiàn)幾乎所有的加密協(xié)議。

要想知道不可區(qū)分混淆是什么,我們不妨先來(lái)看一看混淆是什么。

對(duì)于程序員來(lái)說(shuō),最寶貴的自然是代碼,一旦源代碼被人獲取,基本上就等于程序員編寫代碼花費(fèi)的心血付諸東流,還會(huì)涉及到知識(shí)產(chǎn)權(quán)糾紛。為了保護(hù)代碼,有的程序員會(huì)在導(dǎo)出程序之前采取一些手段來(lái)混淆程序。

當(dāng)前程序混淆有兩種方式,第一種是全文替換關(guān)鍵詞,把整段代碼中所有的“命名”全部替換成數(shù)字(例如將ui_controller替代為a0123456);第二種是直接輸出編譯過(guò)后的代碼,將人們可以看懂的源代碼轉(zhuǎn)換成電腦看得懂的機(jī)器碼,這樣別人就沒(méi)法直接打開這個(gè)文件看到原本的代碼了。

這兩種方式的目的都是在導(dǎo)出程序的時(shí)候,把標(biāo)注性的符號(hào)摘除。從而達(dá)到不暴露源碼信息的效果。

但這兩種方式并不是真正意義上的混淆,因?yàn)殡m然人類難以理解這串代碼到底要做什么,但如果把這樣的代碼放入編譯器中,讓編譯器去分析整個(gè)編程語(yǔ)言的語(yǔ)法結(jié)構(gòu),把每一行指令所要做的事情都?xì)w納出來(lái)的話,那么很容易就能看出些端倪。

真正意義上的混淆被稱作虛擬黑盒(Virtual Black Box Obfuscation,VBB),相當(dāng)于將一個(gè)程序C嵌入一個(gè)黑盒中,我們可以在黑盒的一端輸入x,另一頭會(huì)輸出C(x)。因?yàn)檎麄€(gè)程序都藏在黑盒中,我們完全無(wú)法得知任何C的構(gòu)造信息,也無(wú)法從輸出反推輸入。

如果實(shí)現(xiàn)虛擬黑盒,用戶可以使用程序卻無(wú)法理解程序本身,那么就能讓開發(fā)的程序永遠(yuǎn)不被破解,并且加密程序的過(guò)程也會(huì)十分高效。

但虛擬黑盒的概念提出不久后,很快就被潑了一盆冷水。2001年,7位研究者聯(lián)手提出了一種特殊構(gòu)造的程序,并證明通用的VBB混淆是絕對(duì)不可能的。

不過(guò),這7位研究者的成果中,提出了一種混淆的新型定義——如果一對(duì)程序A和B具有相同的功能性,能否通過(guò)一種新的混淆算法,使第三方無(wú)法區(qū)分兩個(gè)程序呢?對(duì)于這樣的混淆,我們稱之為IO。

其利用的原理是:如果把相同值輸入程序A和B,計(jì)算得到O(A)=P和O(B)=P,在無(wú)法進(jìn)入程序A或B的情況下,在計(jì)算上分辨P來(lái)自于A還是B是不可行的。

有了強(qiáng)大的不可區(qū)分混淆,我們就能完美加密已有的程序,使其永遠(yuǎn)不會(huì)被破解。

IO存在性被證實(shí)

但還難以抵御量子計(jì)算

2013年,美國(guó)加州大學(xué)洛杉磯分校的阿米特·沙海教授聯(lián)合其他5位學(xué)者提出一種IO協(xié)議,把一個(gè)程序拆分為幾塊,就像拼圖游戲,單個(gè)碎片看上去毫無(wú)意義,但如果使用多線性配對(duì)方法將碎片正確地組合到一起,程序就能正常工作。

多線性配對(duì)本質(zhì)上是一種利用多項(xiàng)式進(jìn)行計(jì)算的方法,多項(xiàng)式是由不同變量和數(shù)字組成的數(shù)學(xué)表達(dá)式,如3xy+2yz2。為了保證其安全性,用戶不能獲知整個(gè)過(guò)程中任何參數(shù)。

多線性配對(duì)方法中,有一個(gè)重要的概念叫做“層數(shù)”,它可以理解為運(yùn)算公式中變量的階數(shù),如3xy+2yz2為2階多項(xiàng)式,即其層數(shù)為2;3xy+2yz4為4階多項(xiàng)式,其層數(shù)為4。層數(shù)越多,多線性配對(duì)的安全性越差。

2016年,美國(guó)華盛頓大學(xué)副教授林惠嘉開始探索能否通過(guò)減少多線性配對(duì)的層數(shù)來(lái)實(shí)現(xiàn)IO。最初,她想出了如何用30層多線性配對(duì)構(gòu)建IO。接下來(lái),她和其他研究者逐漸實(shí)現(xiàn)了只用3層多線性配對(duì)來(lái)構(gòu)建IO。

表面上看,這是一個(gè)巨大的進(jìn)步。但有一個(gè)問(wèn)題——從安全的角度來(lái)看,3層多線性配對(duì)和其他3層以上多線性配對(duì)一樣不安全。

此前,研究人員只知道2層及以下的線性配對(duì)是絕對(duì)安全的。林惠嘉與阿米特·沙海聯(lián)手,試圖找出如何用2層線性配對(duì)構(gòu)建IO,但是很長(zhǎng)一段時(shí)間研究都沒(méi)有突破。最終,他們想出了一個(gè)折中方案:既然實(shí)現(xiàn)IO需要3層線性配對(duì),但為了安全需要減少到2層,那么中間是否存在2.5層呢?

研究人員設(shè)想了一個(gè)系統(tǒng),使用戶可以看到部分變量的值,這讓整個(gè)機(jī)制不需要對(duì)太多變量進(jìn)行加密。但多項(xiàng)式被隱藏的變量必須不能超過(guò)2階,如3x2y+2yz4公式中,z的值可以讓用戶看到,而變量x、y的階數(shù)由于沒(méi)有超過(guò)2階因此被隱藏。由此,研究人員在保證線性配對(duì)安全性的前提下,成功實(shí)現(xiàn)了IO。

雖然幾位科學(xué)家聯(lián)手證明了IO的存在性,但量子計(jì)算機(jī)的超強(qiáng)計(jì)算能力,會(huì)使得目前絕大部分加密算法都無(wú)法抵擋,這意味著所有的加密信息,都將會(huì)暴露在量子計(jì)算機(jī)的面前。現(xiàn)在研究者們正試圖開發(fā)一條新的通往IO的潛在途徑,希望能抵擋住量子攻擊。(王昱編譯,據(jù)《環(huán)球科學(xué)》)

責(zé)任編輯:孫知兵

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與太平洋財(cái)富網(wǎng)無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
如有問(wèn)題,請(qǐng)聯(lián)系我們!