導航:首頁 > 文檔加密 > 同態加密環

同態加密環

發布時間:2023-03-19 00:40:13

⑴ 區塊鏈發展趨勢如何

2018年以來,區塊鏈產業蓬勃發展。區塊鏈相關探索及應用已不僅局限於底層平台,互聯網巨頭和金融巨頭已經在金融、公益、商品溯源等領域加強區塊鏈的運用,特別是在金融領域,以區塊鏈技術為核心的應用加速落地。
區塊鏈產業處於高速發展階段
我國區塊鏈產業目前處於高速發展階段。據前瞻產業研究院發布的《區塊鏈行業商業模式創新與投資機會深度分析報告》數據顯示,截止到2018年3月底,我國以區塊鏈業務為主營業務的區塊鏈公司數量達456家,從上游的硬體製造、平台服務、安全服務,到下游的產業技術應用服務,到保障產業發展的行業投融資、媒體、人才服務,各領域的公司已經基本完備。
從排行榜上TOP20企業的應用場景分類來看,除了13家企業專注於底層平台、區塊鏈硬體等區塊鏈基礎設施與平台建設方面,區塊鏈的應用場景已逐漸豐富。從產業細分領域分布狀況來看,行業應用類公司達到7家,主要是互聯網企業(阿里巴巴、京東、騰訊)應用於公益和商品溯源,以及金融企業(平安、招行、中行)演化的創新金融科技應用,如供應鏈金融、票據及交易清算。
由於區塊鏈可以實現信息的不可篡改,從根源上杜絕了數據作偽的可能性,特別是對真實數據要求較高的金融業,將更積極地擁抱區塊鏈。
區塊鏈發展趨勢分析
一、區塊鏈成為全球技術發展的前沿陣地,開辟國際競爭新賽道;
二、區塊鏈領域成為創新創業的新熱土,技術融合將拓展應用新空間;
三、區塊鏈未來三年將在實體經濟中廣泛落地,成為數字中國建設的重要支撐;
四、區塊鏈打造新型平台經濟,開啟共享經濟新時代;
五、區塊鏈加速「可信數字化」進程,帶動金融「脫虛向實」服務實體經濟;
六、區塊鏈監管和標准體系將進一步完善,產業發展基礎繼續夯實。
此外,作為一項新興技術,區塊鏈在金融業的實際生產環境中應用,還存在不少的技術難點,比如吞吐量、擴展性、共識機制、隱私性及安全性、可管理性等。
區塊鏈等技術創新對於金融行業意義重大,有望加速「可信數字化」進程,持續帶動金融「脫虛向實」。

⑵ 區塊鏈行業怎麼樣,還有發展優勢嗎

區塊鏈技術的發展趨勢?
趨勢一:區塊鏈技術不斷迭代更新,正在向大融合方向發展
趨勢二:區塊鏈結構多樣化,同現實世界價值接駁區塊鏈發展到現在,數據結構和系統架構都發生了演化。
趨勢三:區塊鏈產業發展進程加快,進入脫虛向實主旋律
區塊鏈1.0是數字貨幣,2.0是智能合約,3.0是大規模商業應用。霧聯鏈則是區塊鏈3.0時代的發展趨勢之一。
區塊鏈1.0時代,是以比特幣為代表的A到B的轉賬系統;
區塊鏈2.0時代,是以以太坊&rd為代表的簡單智能合約系統;
區塊鏈3.0時代,是以霧聯鏈為代表的高流通、強應用的真實應用場景時代! 霧聯鏈的創新機制,將引領區塊鏈3.0時代!
趨勢四:區塊鏈應用場景日益復雜,跨鏈互聯重要性凸顯
趨勢五:區塊鏈標准化工作提速,各國爭奪標准制定權
現在各國都在努力制定區塊鏈的相關標准,包括日本、美國、歐盟和各種知名的區塊鏈標准組織。
趨勢六:區塊鏈隱私保護機制多樣,成為激活商業應用的關鍵潤滑劑
現在的隱私保護包括很多種,像環簽名、多重簽名、混合器、零知識證明、同態加密等等。現在很多區塊鏈企業在落地的時候碰到的問題是銀行等機構會說不要給我用新型演算法。想要落地,更多的是看能否找到適合商業場景的隱私保護演算法,與實體經濟結合。
趨勢七:區塊鏈安全問題引關注,亟需重視並尋求解決方案 2016年10月,基於以太坊公共區塊鏈平台的創投組織The DAO由於系統漏洞,導致超過5000萬美元的以太幣被盜,後面又出現Parity錢包冷凍攻擊,還有針對節點的日食攻擊,甚至出現一行代碼毀終身,各種各樣的安全事件,涉及到錢包、交易所、鏈、智能合約等各種攻擊。
趨勢八:區塊鏈知識產權競爭日趨激烈,萬物互聯將擴展專利布局 目前,區塊鏈專利申請以企業為主,尚無市場領導者,中美佔據絕對優勢。
趨勢九:區塊鏈助力監管科技,聚焦以鏈治鏈新方向
監管科技主要應用大數據、人工智慧、區塊鏈等技術,監管部門已經將這些技術應用到風控、反欺詐、反洗錢和打擊內幕交易等方面。
趨勢十:區塊鏈人才成為關鍵環節,各方加大培育力度 我們都知道,區塊鏈人才變得越來越貴。

⑶ 智能合約隱私保護論文:NIZK隱私保護方案

該論文為矩陣元聯合中科院、武漢大學密碼學專家合作發表的在賬戶體系下引入保護余額與轉賬資產的分布式智能合約系統。論文中用到了同態加密和零知識證明來保護用戶隱私,其中方案與之前的隱私保護方案相比在性能上有較大的提升,能較好地運用在供應鏈金融等場景中。

論文提出了:

1、一種智能合約下保護用戶余額和交易金額的方案,該方案在隨機預言模型下是可證明安全的。

2、一種高效零知識證明方案NIZK(non-interactive zero knowledge),該方案以產生的proof size更大為代價來提高生成proof的時間效率。

比較:zk-SNARK (Zerocash) & NIZK (DSC)

同態加密 HE(homomorphic encryption):允許用戶直接以密文形式來更新賬戶余額旦蘆。

零知識證明 ZK(zero knowledge):證明交易的正確性。保障equivalence 和 enough ,發送方減少 V 的情況下接收方應該接收 V,證明發送方有多於 V 的賬戶余額來發送給接收方。

相關區塊鏈隱私保護工作:Monero(門羅幣)、RingCT(環簽名)、Zerocoin、Zerocash

1、雙線性映射

2、同態加密

可以保證在密文狀態下進行余額的更新操作。E(1)+E(2)=E(3)

這是一種模握帶 ElGamal 方案的變型,但是不懂為什麼引入h,可能是為了更好的安全性吧,而且余額都為數值型的,相比之下明文空間是比較小的,所以可以解出明文m。

3、基於的困難問題

也是離散對數問題的變型使用。

4、Boneh-Boyen簽名方案

6、零知識證明 NIZK

本文中使用的是一種非互動式的零知識證明,且使用了由可信第三方產生 CRS(common reference string) 的模型, 而沒用使用到證明密鑰 PK 和驗證密鑰 VK。

CRS 可以只產生一次而用來生成多個 proof

7、A 發送 t 個幣給 B 的交易形式:

驗證程序直接以智能合約形式部署在區塊鏈上,可以自動驗證並進行資產轉移操作。

1、Setup

輸入安全參數 n ,生成系統公共參數 PP,其中用到了Boneh-Boyen 簽名方案,且PP中已經包含零知識證明中的 CRS

各參與方的初始化:使用上述同態加密方案對自己的余額進行加密,在賬戶模型中只存儲余額的密文。

此處考慮的明文空間大小為[0,20^30)
,對於擁有私鑰的人來說可以很容易的解密出明文,即賬戶余額值。

3、Transfer

A 發送 t 個幣給 B:

x 表示傳輸語句,其中包含 A、B 的公鑰,A 的賬皮拆戶余額由同態加密生成的密文,以及對 t 分別用 A、B 的公鑰用同態加密生成的密文。

w 表示 witness ,其中包含 A 的私鑰,生成密文時使用的隨機數,A 的賬戶余額及傳輸金額

π 為生成的 proof

(x , PP , π)上傳到區塊鏈上由驗證程序驗證其有效性。

4、Redeem

驗證程序部署在區塊鏈上,收到相應輸入後驗證其有效性:若無效則忽視;若有效,則公開此次交易(交易金額是加密過的),並對發送方和接收方的賬戶余額進行更新。
5、安全性

⑷ 零知識證明

https://arxiv.org/abs/1906.07221

零知識簡潔的非交互知識論證(zk SNARK)是一種真正巧妙的方法,可以在不透露任何其他信息的情況下證明某件事是真的,然而,為什凱談么它盯叢碰首先是有用的呢?

零知識證明在無數應用中是有利的,包括:

關於私人數據的證明聲明:

匿名授權:

匿名付款:

外包計算:

盡管表面上聽起來很棒,但底層方法是數學和密碼學的「奇跡」,自 1985 年在主要著作「互動式證明系統的知識復雜性中引入以來,已經進行了第四個十年的研究 隨後引入了非互動式證明,這在區塊鏈的背景下尤為重要。

在任何零知識證明系統中,都有一個驗證人想要說服驗證人某些陳述是真實的,而不披露任何其他信息,例如,驗證人了解到驗證人的銀行賬戶中有X多個,但沒有其他信息(即,未披露實際金額)。協議應滿足三個屬性:

讓我們從簡單開始,並嘗試證明某些東西,而不必擔心零知識,非交互性,其形式和適用性。

想像一下,我們有一個長度為 10 數組,我們想向驗證者(例如程序)證明所有這些位都設置為 1,即我們知道一個數組,使得每個元素都等於 1。

驗證者一次只能檢查 (即讀取) 一個元素。為了驗證語句,可以通過以某種任意順序讀取元素,並檢查它是否真正等於1,如果是,則在第一次檢查後該語句的置信度為10%,或者如果該位不等於1,則語句完全無效。驗證者必須進入下一輪,直到他獲得足夠的信心。在一些情況下,可以信任證明者並且只需要50% 置信度,在需要95% 置信度的其他情況下,必須檢查所有單元。很明顯,這種證明協議的缺點是,必須進行與元素數量成比例的檢查數量,如果我們考慮數百萬個元素的數組,這是不切實際的。

讓我們考慮多項式,有一個曲線對應於多項式: 。多鄭蠢項式有一個有利的性質,即如果我們有兩個不相等的次數最多為 d 的多項式,它們相交的點不超過 d。 例如,讓我們稍微修改原始多項式 。如果我們想找到兩個多項式的交點,我們需要將它們等同起來。例如,要找到多項式與x軸相交的位置 (即 ),我們將 等同,並且此類方程的解將是那些共享點: , 和 。

同樣,我們可以將多項式的原始版本和修改版本等同起來,以找到它們的交點。所得的多項式為1,且有明顯的解 。因此只有一個交點。

對於任意次數為 d 的多項式,任何此類方程的結果始終是另一個次數最多為 d 的多項式,因為沒有乘法可以產生更高的次數。 示例: ,簡化為 。代數基本定理告訴我們,d 次多項式最多可以有 d 個解。因此,我們可以得出結論,任意點處的任何多項式的求值類似於其唯一身份的表示。讓我們在x = 10處評估我們的示例多項式。

事實上,在所有要計算的x選項中,最多隻有3個選項在這些多項式中具有相同的計算,而所有其他選項都會不同。這就是為什麼如果證明者聲稱知道一些多項式 (無論其次數有多大),他們可以遵循一個簡單的協議來驗證語句:

例如,如果我們考慮 x 從 1 到 的整數范圍,則評估不同的點數為 。 此後,x 意外「擊中」任何 個共享點的概率等於 ,這被認為可以忽略不計。

注意:與無效位檢查協議相比,新協議只需要一輪,並且在聲明中給出了壓倒性的信心(假設 d 充分小於范圍的上限,幾乎 100%)。

這就是為什麼多項式是zk-SNARK的核心,盡管也可能存在其他證明介質。

我們從證明多項式知識的問題開始,然後採用通用方法。 在此過程中,我們將發現多項式的許多其他性質。 到目前為止的討論集中,關注一個弱的證明概念上,即各方必須相互信任,因為還沒有措施來執行協議的規則。 例如,證明者不需要知道多項式,他可以使用任何其他可用的方法來得出正確的結果。 此外,如果驗證者的多項式評估的幅度不大,比如說 10,驗證者可以猜測一個數字,並且它被接受的概率是不可忽略的。 我們必須解決協議的這種弱點,但首先知道多項式意味著什麼? 多項式可以表示為以下形式(其中 n 是多項式的次數):

如果有人說他知道一個 1 次多項式(即 ),那意味著他真正知道的是系數 。 此外,系數可以有任何值,包括 0。讓我們說,證明者聲稱知道3次多項式,使得x = 1和x = 2是所有可能解中的兩個。這樣的有效多項式之一是 。

代數的基本定理指出,只要多項式是可解的,任何多項式都可以分解為線性多項式 (即代表直線的1次多項式)。因此,我們可以將任何有效多項式表示為其因子的乘積:

同樣,如果這些因子中的任何一個為零,則整個方程為零,因此,所有 都是唯一的解。我們的示例可以分解為以下多項式:

x的值是:0,1,2,你可以很容易地在多項式的任一形式上檢查這一點。

回到證明者聲稱他知道根為 1 和 2 的 3 次多項式,這意味著他的多項式具有以下形式:

換句話說,(x − 1) 和 (x − 2) 是所討論的多項式的余因子。因此,如果證明者想要證明他的多項式確實具有這些根而不公開多項式本身,則他需要證明他的多項式p(x) 是那些協因子 的乘法,稱為目標多項式,和一些任意多項式h(x) ,即:

換句話說,p(x) 具有t(x) 的所有根。找到h(x) 的自然方法是通過除法 。如果證明者找不到這樣的h(x),這意味著p(x) 沒有必要的協因子t(x),在這種情況下,多項式除法將具有餘數。在我們的示例中,如果我們將 除以 。我們得到了無余數的結果 。

使用我們的多項式身份檢查協議,我們可以比較多項式 和 :

為了將其付諸實踐,讓我們在示例中執行此協議:

相反,如果證明者使用不同的 ,它沒有正確的輔因子,例如 ,那麼:

我們將得到 ,余數為 ,即: 。這意味著證明者必須將余數除以 才能評估 。因此,由於驗證者對x的隨機選擇,因此對於余數 被t(x) 整除的概率很低,因此,如果驗證者將檢查p和h補是整數,這樣的證明將被拒絕。但是,該檢查要求多項式系數也必須是整數。

現在,我們可以在不學習多項式本身的情況下檢查多項式的特定屬性,因此這已經為我們提供了某種形式的零知識和簡潔。盡管如此,此構造仍存在多個問題:

我們將在以下部分解決所有問題。

在上文中,如果將 和 不是明文給出,而是作為黑匣子給出,那將是理想的選擇,因此人們無法篡改協議,但仍然能夠計算對這些模糊值。類似於哈希函數,因此在計算時很難返回到原始輸入。

這正是同態加密的目的。也就是說,它允許對一個值進行加密,並能夠對這種加密應用算術運算。有多種方法可以實現加密的同態特性,我們將簡要介紹一種簡單的方法。

一般的想法是,我們選擇一個基數的自然數g(比如5),然後對一個值進行加密,我們將g乘以該值的冪。例如,如果我們想要加密數字3:

其中125是3的加密。如果要將這個加密的數字乘以2,則將其提高為2的指數:

我們能夠將未知值乘以2,並對其進行加密。我們還可以通過乘法添加兩個加密值,例如3+2:

同樣,我們可以通過除法減去加密的數字,例如5 − 3:

但是,由於基數5是公共的,因此很容易回到秘密數字,將加密的數字除以5,直到結果為1。除法的次數即為明文。

這就是模演算法發揮作用的地方。模運算的思想如下:我們聲明只選擇前n個自然數,即0,1,…,n-1而不是擁有一個無限的數字集。如果任何給定的整數不在這個范圍內,我們將其「環繞」。例如,讓我們先選擇六個數字。為了說明這一點,請考慮一個具有六個相等單位刻度的圓;這是我們的射程。

現在讓我們看看數字8將落在哪裡。 打個比方,我們可以把它想像成一根繩子,它的長度是八個單位。如果我們把繩子連接到圓圈的開頭並開始將繩子纏繞在它周圍,旋轉一圈後,我們還剩下一部分繩子.因此,如果我們繼續這個過程,繩子將在2處結束。

它是模運算的結果。 不管繩子有多長,它總是會停在圓圈的刻度之一處。 因此,模運算將使其保持在一定范圍內。 15 個單位的繩索將在 3 處停止,即 6 + 6 + 3(兩個完整的圓圈,剩餘 3 個單位)。 負數的工作方式相同,唯一的區別是我們將其包裝在相反的方向,對於 -8,結果將是 4。

而且,我們可以進行算術運算,結果總是在n個數的范圍內。 我們現在將使用符號「mod 」來表示數字的范圍。 例如:3 × 5 = 3 (mod 6); 5 + 2 = 1 (mod 6).

此外,最重要的特性是運算順序無關緊要,例如,我們可以先執行所有運算,然後在每次運算後應用模或應用模。例如: 相當於:2 × 4 = 2 (mod 6); 2 − 1 = 1 (mod 6); 1 × 3 = 3 (mod 6).

那到底為什麼有幫助呢?事實證明,如果我們使用模算術,則具有運算結果,回到原始數字是不平凡的,因為許多不同的組合將具有相同的結果: 5 × 4 = 2 (mod 6); 4 × 2 = 2 (mod 6); 2 × 1 = 2 (mod 6).

如果沒有模算術,結果的大小為它的解決方案提供了線索。 否則,這條信息會被隱藏,而常見的算術屬性會被保留。

如果我們回到同態加密並使用模運算,例如模 7,我們將得到:

和不同的指數會有相同的結果:

這是很難找到指數的地方。 事實上,如果模數足夠大,這樣做就變得不可行,而現代密碼學的很大一部分是基於這個問題的「難度」。該方案的所有同態屬性都保留在模領域中:

encryption:
multiplication:
addition:

讓我們明確說明加密函數: ,其中 v 是我們要加密的值。

這種同態加密方案存在局限性,盡管我們可以將加密值乘以未加密值,但我們不能將兩個加密值乘以 (和除以),也不能對加密值求冪。雖然從第一印象來看是不幸的,但這些屬性將成為zk-SNARK的基石。

有了這樣的工具,我們現在可以評估一個加密隨機值為x的多項式,並相應地修改零知識協議。

讓我們看看如何評估多項式 。正如我們以前建立的那樣,多項式就是知道它的系數,在這種情況下,它們是: 1,-3,2。因為同態加密不允許對加密值求冪,所以我們必須得到從1到3的x冪的加密值: , , ,這樣我們可以對加密多項式求值如下:

作為這些操作的結果,我們在我們未知的某個 x 處對我們的多項式進行了加密。 這是一個非常強大的機制,並且由於同態特性,相同多項式的加密計算在加密空間中總是相同的。我們現在可以更新協議的先前版本,對於d次多項式:

Verifier:

Prover:

Verifier:

由於證明者對s一無所知,因此很難提出不合法但仍匹配的評估。

雖然在這樣的協議中,證明者的敏捷性是有限的,但他仍然可以使用任何其他方法來偽造證明,而無需實際使用所提供的 s 冪的加密,例如,如果證明者聲稱僅使用 2 次冪 和 有一個令人滿意的多項式 ,這在當前協議中無法驗證。

多項式的知識是其系數 。 我們在協議中「分配」這些系數的方式是通過對秘密值 s 的相應加密冪求冪(即 )。 我們已經在選擇 s 的加密冪時限制了證明者,但這種限制並未強制執行,例如,可以使用任何可能的方法來找到滿足方程 的任意值 和 並將它們提供給驗證者而不是 和 。 例如,對於一些隨機 , 和 ,其中 可以從提供的 s 的加密冪計算。 這就是為什麼驗證者需要證明僅使用 s 的冪的加密來計算 和 而沒有別的。

讓我們考慮一個1次多項式的基本例子,該多項式具有一個變數和一個系數 ,相應地,s的加密 。我們正在尋找的是確保只有s的加密,即 ,被一些任意系數c同態「乘以」,而不是其他任何東西。所以對於任意的c,結果必須是 形式。

一種方法是要求對另一個移位的加密值與原始值一起執行相同的操作,充當「校驗和」的算術模擬,確保結果是原始值的取冪。這是通過引入的指數知識假設Knowledge-of-Exponent Assumption (或KEA) 來實現的,更確切地說:

Alice有一個值a,她希望Bob指數到任何冪,唯一的要求是只有這個a可以指數,沒有別的,以確保她:

因為 Bob 無法從元組 中提取 ,因此推測 Bob 可以產生有效響應的唯一方法是通過以下過程:

最終,這樣的協議向Alice提供了一個證據,證明Bob確實將a乘以他已知的某個值,並且他不能進行任何其他操作,例如乘法、加法,因為這將消除 移位關系。

在同態加密上下文中,冪運算是加密值的乘法。我們可以在簡單的單系數多項式 的情況下應用相同的構造:

這種結構限制證明者僅使用提供的加密 s,因此證明者可以僅將系數 c 分配給驗證者提供的多項式。 我們現在可以將這種單項多項式方法縮放為多項多項式,因為每個項的系數分配是單獨計算的,然後同態地「相加」在一起。 因此,如果向證明者提供 s 的加密冪以及它們的移位值,他可以評估原始多項式和移位多項式,其中必須進行相同的檢查。 特別是對於 d 次多項式:

對於我們之前的示例多項式 ,這將是:

現在我們可以確定,驗證程序除了使用驗證程序提供的多項式外,沒有使用任何其他方法,因為沒有其他方法來保持 移位。此外,如果驗證者希望確保在驗證者的多項式中排除一些s的冪,例如j,他將不提供加密 及其移位 。

與我們一開始的相比,我們現在有了一個健壯的協議。 然而,無論加密如何,零知識屬性仍然存在一個明顯的缺點:雖然理論上多項式系數 可以有很大范圍的值,但實際上它可能非常有限(上例中為 6),這意味著 驗證者可以暴力破解有限范圍的系數組合,直到結果等於證明者的答案。 例如,如果我們考慮每個系數的 100 個值的范圍,則 2 次多項式將總共有 100 萬個不同的組合,考慮到蠻力將需要不到 100 萬次迭代。 此外,即使在只有一個系數且其值為 1 的情況下,安全協議也應該是安全的。

因為驗證器只能從驗證器發送的數據中提取關於未知多項式p(x)的知識,所以讓我們考慮那些提供的值(證明): 。他們參與以下檢查:

gp=gh(多項式p(x)有t(x)的根)

(gp)α=gp′t(s)(使用正確形式的多項式)

問題是我們如何改變證據,使支票仍然有效,但無法提取任何知識?從上一節可以得出一個答案:我們可以用一些隨機數δ(δ)來「移位」這些值,例如(gp)δ。現在,為了提取知識,首先需要找到被認為不可行的δ。此外,這種隨機化在統計學上與隨機性是無法區分的。

為了保持關系,讓我們檢查驗證者的檢查。證明者的值之一位於方程式的每一側。因此,如果我們用相同的 δ 「移動」 它們中的每一個,方程必須保持平衡。

具體地,證明者對隨機 δ 進行采樣,並用g α p(s) δ gh(s) δ 對其證明值求冪,並提供給驗證者進行驗證:

(gp)δ = gh δ t(s) (gp)δ α = gp′ δ

合並後,我們可以觀察到支票仍然有效:

注意: 零知識是多麼容易被編織到建築中,這通常被稱為 「免費」 零知識。

到目前為止,我們有一個互動式零知識方案。為什麼會這樣?由於該證明僅對原始驗證者有效,其他任何人(其他驗證者)都不能信任同一證明,因為:

因此,為了證明語句(在這種情況下是多項式的知識),需要與每個驗證者進行單獨的交互。

雖然互動式證明系統有其使用案例,例如,當證明人只想說服一個專用的驗證人(稱為指定驗證人),這樣證明就不能再用於向其他人證明同一陳述時,當一個人需要同時(例如,在區塊鏈等分布式系統中)或永久地說服多方時,這是非常有效的。驗證方需要始終保持在線,並對每個驗證方執行相同的計算。

因此,我們需要的秘密參數是可重用的,公開的,可信的和不可濫用的。

讓我們首先考慮在秘密 (t(s),α) 產生後如何保護它們。我們可以像驗證者在發送給證明者之前對s的指數進行加密一樣對它們進行加密。然而,我們使用的同態加密不支持兩個加密值的乘法,這對於驗證檢查以使t(s) 和h以及p和 α 的加密相乘都是必需的。這就是密碼配對的地方。

密碼配對(雙線性映射)是一種數學構造,用函數 , 給定來自一組數字的兩個加密輸入(例如, ,允許將它們確定地映射到不同數字輸出集中的乘法表示,即, 。

由於源和輸出編號集合不同,因此配對的結果不能用作另一個配對操作的輸入。我們可以將輸出集 (也稱為 「目標集」) 視為來自 「不同的宇宙」。因此,我們不能將結果乘以另一個加密值,並通過名稱本身建議我們一次只能乘以兩個加密值。在某種意義上,它類似於一個散列函數,它將所有可能的輸入值映射到一組可能的輸出值中的一個元素,並且它不是平凡可逆的。

注意: 乍一看,這種限制只能阻礙依賴的功能,具有諷刺意味的是,在zk-SNARK情況下,它是該方案的安全性所擁有的最重要的屬性。

配對函數 的一個基本(技術上不正確)的數學類比是說明有一種方法可以「交換」每個輸入的基數和指數,這樣基數 在轉換過程中會被修改成指數,例如 。 然後將兩個「交換的」輸入相乘,使得原始 a 和 b 值在相同的指數下相乘,例如:

因此,由於在「交換」期間使用結果 在另一個配對(例如, )中改變了鹼基,因此不會產生所需的加密乘法 。配對的核心屬性可以用等式表示:

e(ga, gb) = e(gb, ga) = e(gab, g1) = e(g1, gab) = e(g1, ga)b= e(g1, g1) ab= . . .

從技術上講,配對的結果是目標集不同生成器g下原始值的加密產物,即 。因此,它具有同態加密的特性,例如,我們可以將多對的加密產物添加到一起:

注意:加密配對利用橢圓曲線來實現這些屬性,因此從現在起,符號 將表示曲線上的生成器點,該點將被添加到自身 次,而不是我們在前面部分中使用的乘法群生成器。

有了加密配對,我們現在可以設置安全的公共和可重用參數。讓我們假設我們信任一個誠實的一方來生成秘密 s 和 α。一旦 α 和具有相應 α 位移的 s 的所有必要冪被加密(gα, gsi , gαsi for i in 0, 1, ..., d),必須刪除原始值。

這些參數通常被稱為公共參考字元串common reference string或CRS。CRS生成後,任何prover和verifier都可以使用它來執行非互動式零知識證明協議。雖然不重要,但CRS的優化版本將包括對目標多項式target polynomial 的加密評估。

此外,CRS分為兩組(對於 中的 ):

由於能夠乘以加密值,verifier可以在協議的最後一步檢查多項式,讓verification key verifier進程從證明者那裡接收到加密多項式評估 gp、gh、gp':

雖然可信設置是有效的,但它並不有效,因為 CRS 的多個用戶將不得不相信一個刪除的 和 ,因為目前沒有辦法證明這一點。 因此,有必要最小化或消除這種信任。 否則,不誠實的一方將能夠在不被發現的情況下製作假證據。

實現這一點的一種方法是由多方使用前面部分中介紹的數學工具生成復合 CRS,這樣這些方都不知道秘密。這是一種方法,讓我們考慮三個參與者 Alice、Bob 和 Carol,對應的索引為 A、B 和 C,對於 i 在 1、2、...中。 . . , d:

作為這種協議的結果,我們有復合 和 並且沒有參與者知道其他參與者的秘密參數,除非他們串通。事實上,為了學習 和 ,必須與其他所有參與者串通一氣。因此,即使一個人是誠實的,也無法提供假證明。

注意:此過程可以根據需要對盡可能多的參與者重復。

可能存在的問題是如何驗證參與者是否與 CRS 的每個值一致,因為對手可以采樣多個不同的 s1、s2、...。 . . 和α1, α2, . . .,並將它們隨機用於 s 的不同冪(或提供隨機數作為增強的公共參考字元串),從而使 CRS 無效且不可用。

幸運的是,因為我們可以使用配對來乘以加密值,所以我們能夠執行一致性檢查,從第一個參數開始,並確保每個下一個參數都是從它派生的。參與者發布的每個 CRS 都可以檢查如下:

請注意,雖然我們驗證每個參與者都與他們的秘密參數一致,但使用先前發布的 CRS 的要求並未對每個下一個參與者強制執行(在我們的示例中為 Bob 和 Carol)。因此,如果對手是鏈中的最後一個,他可以忽略先前的 CRS 並從頭開始構造有效參數,就好像他是鏈中的第一個,因此是唯一知道秘密 s 和 α 的人。

我們可以通過額外要求除第一個參與者之外的每個參與者加密和發布他的秘密參數來解決這個問題,例如,Bob 還發布:

這允許驗證 Bob 的 CRS 是 Alice 參數的適當倍數,因為 i in 1, 2, . . . , d:

同樣,Carol必須證明她的CRS是Alice-Bob的CRS的適當倍數。

這是一個強大的CRS設置方案,不完全依賴任何一方。實際上,即使只有一方是誠實的,並且刪除並且從不共享其秘密參數,即使所有其他各方都合謀,它也是非常明智的。因此,CRS 設置中不相關的參與者越多,偽造證據的可能性就越小,如果競爭方參與,其可能性就可以忽略不計。該方案允許涉及對設置的易讀性有疑問的其他不受信任的各方,因為驗證步驟確保他們不會破壞最終的公共參考字元串 (也包括使用弱 α 和s)。

我們現在准備鞏固進化的zk-SNARKOP協議。形式上,為簡潔起見,我們將使用大括弧來表示由其旁邊的下標填充的一組元素,例如si i ∈[d] 表示集合s1,s2,...,sd。

已商定目標多項式t(x)和校準儀多項式的d次:

Setup:

⑸ 隱私環境對保護心靈有作用嗎

答:對保護心靈是有很好的作用的。

我們的心靈是受著外界環境的直接影響的,當你的外界環境非常美好的時候,你的心宴螞靈也會非常的美好,同樣當你的外部生活環境是非常惡劣的時候,直接就影響到了你的內心,也是非常惡劣的。所以,不同的環境對人們的心靈產生著不同的影響,從而說明了環境對心靈是有很大的作用的。

隱私的環境實際上就是對每個人的保護,尊重個人的隱私,尊纖孫重個人的獨立,個體的一些相對的要求,這樣就對人相對需要的安全環境達成了一種滿足,只有在這種情況下毀祥鏈,人的心靈才能夠更好的,更安全的,更舒適的生活下去。所以我們應該營造一些這樣的氛圍,也就是說我們現在的飯店裡面為什麼有的是大堂的餐桌,有的是包間,我們大家更喜歡去包間,因為它就是一種隱私的環境,她對我們就有一種非常好的保護,所以就能夠讓我們更好地擁有自己的心靈。

希望我的回答對你有幫助。

圖片來源於網路

⑹ 區塊鏈中現代密碼學

1983年 - David Chaum描述的盲簽
1997年 - Adam Back發明的HashCash(工作證明制度的一個例子)
2001年 - Ron Rivest,Adi Shamir和Yael Tauman向加密社區提出了環簽名
2004年 - Patrick P. Tsang和Victor K.提出使用環簽名系統進行投票和電子現金;
2008年 - 由Satoshi Nakamoto出版的Bitcoin白皮書
2011年 - 比特幣系統中的匿名分析,Fergal Reid和Martin Harrigan
2012 - 目的地址比特幣匿名(CryptoNote中的一次性地址)。

安全多方計算起源於1982年姚期智的百萬富翁問題。後來Oded Goldreich有比較細致系統的論述。

姚氏百萬富翁問題是由華裔計算機科學家、圖靈獎獲得者姚啟智教授首先提出的。該問題表述為:兩個百萬富翁Alice和Bob想知道他們兩個誰更富有,但他們都不想讓對方知道自己財富的任何信息。該問題有一些實際應用:假設Alice希望向Bob購買一些商品,但她願意支付的最高金額為x元;Bob希望的最低賣出價為y元。Alice和Bob都非常希望知道x與y哪個大。如果x>y,他們都可以開始討價還價;如果z<y,他們就不用浪費口舌。但他們都不想告訴對方自己的出價,以免自己在討價還價中處於不利地位。

該方案用於對兩個數進行比較,以確定哪一個較大。Alice知道一個整數i;Bob知道一個整數j, Alice與B0b希望知道究竟i>=j還是j>i,但都不想讓對方知道自己的數。為簡單起見,假設j與i的范圍為[1,100】。Bob有一個公開密鑰Eb和私有密鑰Db。

安全多方計算(Secure Multi-Party Computation)的研究主要是針對無可信第三方的情況下, 如何安全地計算一個約定函數的問題. 安全多方計算在電子選舉、電子投票、電子拍賣、秘密共享、門限簽名等場景中有著重要的作用。

同態加密(Homomorphic Encryption)是很久以前密碼學界就提出來的一個Open Problem。早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以銀行為應用背景提出了這個概念[RAD78]。對,你沒有看錯,Ron Rivest和Leonard Adleman分別就是著名的RSA演算法中的R和A。

什麼是同態加密?提出第一個構造出全同態加密(Fully Homomorphic Encryption)[Gen09]的Craig Gentry給出的直觀定義最好:A way to delegate processing of your data, without giving away access to it.

這是什麼意思呢?一般的加密方案關注的都是數據存儲安全。即,我要給其他人發個加密的東西,或者要在計算機或者其他伺服器上存一個東西,我要對數據進行加密後在發送或者存儲。沒有密鑰的用戶,不可能從加密結果中得到有關原始數據的任何信息。只有擁有密鑰的用戶才能夠正確解密,得到原始的內容。我們注意到,這個過程中用戶是不能對加密結果做任何操作的,只能進行存儲、傳輸。對加密結果做任何操作,都將會導致錯誤的解密,甚至解密失敗。

同態加密方案最有趣的地方在於,其關注的是數據處理安全。同態加密提供了一種對加密數據進行處理的功能。也就是說,其他人可以對加密數據進行處理,但是處理過程不會泄露任何原始內容。同時,擁有密鑰的用戶對處理過的數據進行解密後,得到的正好是處理後的結果。

有點抽象?我們舉個實際生活中的例子。有個叫Alice的用戶買到了一大塊金子,她想讓工人把這塊金子打造成一個項鏈。但是工人在打造的過程中有可能會偷金子啊,畢竟就是一克金子也值很多錢的說… 因此能不能有一種方法,讓工人可以對金塊進行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?當然有辦法啦,Alice可以這么做:Alice將金子鎖在一個密閉的盒子裡面,這個盒子安裝了一個手套。工人可以帶著這個手套,對盒子內部的金子進行處理。但是盒子是鎖著的,所以工人不僅拿不到金塊,連處理過程中掉下的任何金子都拿不到。加工完成後。Alice拿回這個盒子,把鎖打開,就得到了金子。

這裡面的對應關系是:盒子:加密演算法盒子上的鎖:用戶密鑰將金塊放在盒子裡面並且用鎖鎖上:將數據用同態加密方案進行加密加工:應用同態特性,在無法取得數據的條件下直接對加密結果進行處理開鎖:對結果進行解密,直接得到處理後的結果同態加密哪裡能用?這幾年不是提了個雲計算的概念嘛。同態加密幾乎就是為雲計算而量身打造的!我們考慮下面的情景:一個用戶想要處理一個數據,但是他的計算機計算能力較弱。這個用戶可以使用雲計算的概念,讓雲來幫助他進行處理而得到結果。但是如果直接將數據交給雲,無法保證安全性啊!於是,他可以使用同態加密,然後讓雲來對加密數據進行直接處理,並將處理結果返回給他。這樣一來:用戶向雲服務商付款,得到了處理的結果;雲服務商掙到了費用,並在不知道用戶數據的前提下正確處理了數據;

聚合簽名由Boneh等人提出,主要是通過聚合多個簽名為一個簽名,來提高簽名與驗證的效率。要對多個用戶的數據進行簽名,聚合簽名能夠極大地降低簽名計算復雜度。CL就是聚合簽名。

零知識證明過程有兩個參與方,一方叫證明者,一方叫驗證者。證明者掌握著某個秘密,他想讓驗證者相信他掌握著秘密,但是又不想泄漏這個秘密給驗證者。

雙方按照一個協議,通過一系列交互,最終驗證者會得出一個明確的結論,證明者是或不掌握這個秘密。

對於比特幣的例子,一筆轉帳交易合法與否,其實只要證明三件事:

發送的錢屬於發送交易的人
發送者發送的金額等於接收者收到金額
發送者的錢確實被銷毀了
整個證明過程中,礦工其實並不關心具體花掉了多少錢,發送者具體是誰,接受者具體是誰。礦工只關心系統的錢是不是守恆的。

zcash 就是用這個思路實現了隱私交易。

零知識證明的三條性質對應:

(1)完備性。如果證明方和驗證方都是誠實的,並遵循證明過程的每一步,進行正確的計算,那麼這個證明一定是成功的,驗證方一定能夠接受證明方。
(2)合理性。沒有人能夠假冒證明方,使這個證明成功。
(3)零知識性。證明過程執行完之後,驗證方只獲得了「證明方擁有這個知識」這條信息,而沒有獲得關於這個知識本身的任何一點信息。

只有環成員,沒有管理者,不需要環成員之間的合作,簽名者利用自己的私鑰和集合中其他成員的公鑰就能獨立的進行簽名,不需要其他人的幫助,集合中的其他成員可能不知道自己被包含在了其中。
環簽名可以被用作成一種泄露秘密的方式,例如,可以使用環形簽名來提供來自「白宮高級官員」的匿名簽名,而不會透露哪個官員簽署了該消息。 環簽名適用於此應用程序,因為環簽名的匿名性不能被撤銷,並且因為用於環簽名的組可以被即興創建。

1)密鑰生成。為環中每個成員產生一個密鑰對(公鑰PKi,私鑰SKi)
2)簽名。簽名者用自己的私鑰和任意n個環成員的公鑰為消息m生成簽名a
3)簽名驗證。簽名者根據環簽名和消息m,驗證簽名是否是環中成員所簽。如果有效就接收,如果無效就丟棄。

群簽名的一般流程

盲數字簽名(Blind Signature)簡稱盲簽名——是一種數字簽名的方式,在消息內容被簽名之前,對於簽名者來說消息內容是不可見的。1982年大衛·喬姆首先提出了盲簽名的概念。盲簽名因為具有盲性這一特點,可以有效保護所簽署消息的具體內容,所以在電子商務和電子選舉等領域有著廣泛的應用。

類比例子:對文件簽名就是通過在信封里放一張復寫紙,簽名者在信封上簽名時,他的簽名便透過復寫紙簽到文件上。

所謂盲簽名,就是先將隱蔽的文件放進信封里,而除去盲因子的過程就是打開這個信封,當文件在一個信封中時,任何人不能讀它。對文件簽名就是通過在信封里放一張復寫紙,簽名者在信封上簽名時,他的簽名便透過復寫紙簽到文件上。

一般來說,一個好的盲簽名應該具有以下的性質:

不可偽造性。除了簽名者本人外,任何人都不能以他的名義生成有效的盲簽名。這是一條最基本的性質。
不可抵賴性。簽名者一旦簽署了某個消息,他無法否認自己對消息的簽名。
盲性。簽名者雖然對某個消息進行了簽名,但他不可能得到消息的具體內容。
不可跟蹤性。一旦消息的簽名公開後,簽名者不能確定自己何時簽署的這條消息。
滿足上面幾條性質的盲簽名,被認為是安全的。這四條性質既是我們設計盲簽名所應遵循的標准,又是我們判斷盲簽名性能優劣的根據。

另外,方案的可操作性和實現的效率也是我們設計盲簽名時必須考慮的重要

因素。一個盲簽名的可操作性和實現速度取決於以下幾個方面:

1,密鑰的長度;
2,盲簽名的長度;
3,盲簽名的演算法和驗證演算法。
盲簽名具體步驟
1,接收者首先將待簽數據進行盲變換,把變換後的盲數據發給簽名者。
2,經簽名者簽名後再發給接收者。
3,接收者對簽名再作去盲變換,得出的便是簽名者對原數據的盲簽名。
4,這樣便滿足了條件①。要滿足條件②,必須使簽名者事後看到盲簽名時不能與盲數據聯系起來,這通常是依靠某種協議來實現的。

⑺ 人工智慧與區塊鏈的關系

區塊鏈與人工智慧其實並無直接關系,無論是在開發上還是在技術上,但二者並不是不能相關聯。只要使用得當,二者也可以有很好的結合。

比如現階段的區塊鏈領域,公鏈技術發展停滯不前,其中關鍵的一環就是在出塊的問題上,目前舊時代的公鏈技術在出塊效率上存在很大的問題,不光浪費資源,而且在分配上也很不合理,導致公鏈資源大量被浪費,效率停滯不前。

而人工智慧恰好可以很好的解決這一問題,比如通過人工智慧(AI)優化的神經網路來增強 其共識演算法,進行自我學習和自我優化的公鏈,致力於提高轉賬過程以及智能合約的 安全性、互操作性、和高度可擴展性。像Velas就是 採用通過 AI 增強的 DPoS 共識,在不降低安全性和交易速度的情況下,完全實現去中心化。

Velas 上的神經網路由許多簡單的有機體組成,它們通過 80/20 共識消除區塊鏈中 的不規則現象,確保網路按預期運行。 不光如此,Velas AI 計算出塊時間和運行節點的獎勵。AI 優化網路產生了可能的最佳結果,降 低了共識的成本,並使其可擴展至超過每秒 3 萬次交易。

⑻ 區塊鏈發展趨勢如何

現在區塊鏈進入到了3.0時代,關於區塊鏈的發展趨勢,個人總結三點,希望對你有用。
趨勢一:區塊鏈技術不斷迭代更新,正在向大融合方向發展。
區塊鏈是塊鏈結構,通過加密完成權屬的明晰,通過大量冗餘的存儲低成本地建立起信山纖拿任,因此存儲效率非常低下。於是很多系統都把現有區塊鏈的數據導出到外部進行存儲。
趨豎返勢二:區塊鏈隱私保護機制多樣,成為激活商業應用的關鍵潤滑劑。
現在的隱私保護包括很多種,像環簽名、多重簽名、混合器、零知識證明、同態加密等等。麻省理工大學科技評論把完美的隱私保護評為十大突破性技術之一,因為隱私保護對區塊鏈來說是很好的潤滑劑。
趨勢三:區塊鏈產業發展進程加快,進入「脫虛向實」主旋律。
可以說,現在區塊鏈已經完成了很逗搭多落地,隨著區塊鏈產業發展進程加快,未來將開啟區塊鏈技術在醫療、司法、工業、能源等各個領域的大規模商業應用。
題外,區塊鏈目前在游戲上發展趨勢較好,騰訊的《一起來捉妖》、網路的《度宇宙》、中安寰宇區塊鏈的《DR尋龍記》、網易的《網易星球》等,陸續大企業都開始布局區塊鏈游戲。

⑼ 星驛付POS機刷卡不到賬怎麼辦

辦理POS機第一個問題就是:不到賬找誰?
1、銀行辦理的不用說,找銀行;
2、外面辦理的就要注意點了,不到賬找誰,找辦理的業務員或者代理的公司都是扯淡,剁了他們都沒這么多錢,一定要明確是哪個結構發給你POS機的,有支付牌照的公司就放心使用。比如你中匯的機器就聯系中匯客服電話,樂富就聯系樂富的。
注意的陷阱:目前有些公司沒有牌照,但也發放POS機,或者暫時還沒拿到牌照,都要小心

⑽ 區塊鏈技術如何保障信息主體隱私和權益

隱私保護手段可以分為三類:
一是對交易信息的隱私保護,對交易的發送者、交易接受者以及交易金額的隱私保護,有混幣、環簽名和機密交易等。
二是對智能合約的隱私保護,針對合約數據的保護方案,包含零知識證明、多方安全計算、同態加密等。
三是對鏈上數據的隱私保護,主要有賬本隔離、私有數據和數據加密授權訪問等解決方案。
拓展資料:
一、區塊鏈加密演算法隔離身份信息與交易數據
1、區塊鏈上的交易數據,包括交易地址、金額、交易時間等,都公開透明可查詢。但是,交易地址對應的所用戶身份,是匿名的。通過區塊鏈加密演算法,實現用戶身份和用戶交易數據的分離。在數據保存到區塊鏈上之前,可以將用戶的身份信息進行哈希計算,得到的哈希值作為該用戶的唯一標識,鏈上保存用戶的哈希值而非真實身份數據信息,用戶的交易數據和哈希值進行捆綁,而不是和用戶身份信息進行捆綁。
2、由此,用戶產生的數據是真實的,而使用這些數據做研究、分析時,由於區塊鏈的不可逆性,所有人不能通過哈希值還原注冊用戶的姓名、電話、郵箱等隱私數據,起到了保護隱私的作用。
二、區塊鏈「加密存儲+分布式存儲」
加密存儲,意味著訪問數據必須提供私鑰,相比於普通密碼,私鑰的安全性更高,幾乎無法被暴力破解。分布式存儲,去中心化的特性在一定程度上降低了數據全部被泄漏的風險,而中心化的資料庫存儲,一旦資料庫被黑客攻擊入侵,數據很容易被全部盜走。通過「加密存儲+分布式存儲」能夠更好地保護用戶的數據隱私。
三、區塊鏈共識機制預防個體風險
共識機制是區塊鏈節點就區塊信息達成全網一致共識的機制,可以保障最新區塊被准確添加至區塊鏈、節點存儲的區塊鏈信息一致不分叉,可以抵禦惡意攻擊。區塊鏈的價值之一在於對數據的共識治理,即所有用戶對於上鏈的數據擁有平等的管理許可權,因此首先從操作上杜絕了個體犯錯的風險。通過區塊鏈的全網共識解決數據去中心化,並且可以利用零知識證明解決驗證的問題,實現在公開的去中心化系統中使用用戶隱私數據的場景,在滿足互聯網平台需求的同時,也使部分數據仍然只掌握在用戶手中。
四、區塊鏈零知識證明
零知識證明指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的,即證明者既能充分證明自己是某種權益的合法擁有者,又不把有關的信息泄漏出去,即給外界的「知識」為「零」。應用零知識證明技術,可以在密文情況下實現數據的關聯關系驗證,在保障數據隱私的同時實現數據共享。

閱讀全文

與同態加密環相關的資料

熱點內容
760貼片機編程視頻 瀏覽:331
歐姆龍plc編程第36講 瀏覽:907
我的世界如何將一個伺服器弄崩 瀏覽:6
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603