<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    安全多方計算(1):不經意傳輸協議

    VSole2021-11-25 15:04:52

    一、前言

    在安全多方計算系列的首篇文章(安全多方計算之前世今生)中,我們提到了百萬富翁問題,并提供了百萬富翁問題的通俗解法,該通俗解法可按圖1簡單回顧。

    圖1 百萬富翁問題通俗解法

    百萬富翁問題通俗解法場景中,我們可以將Alice和Bob的訴求總結如下:

    Alice:有9個裝有物品的箱子,Bob只能打開其中一個箱子看到物品,看不到其他箱子內的物品。

    Bob:不希望Alice知道自己打開的是哪個箱子。

    百萬富翁問題通俗解法可以通過密碼學中的n選1的不經意傳輸協(Oblivious Transfer,OT)議完美解決。

    通過百萬富翁問題通俗解法場景描述,對OT協議解決的問題可抽象為:Alice擁有n條消息{m1,…,mn},Bob想知道其中一條消息mi;通過執行OT協議,Bob可以正確獲得想要知道的消息mi,無法獲得其它n-1條消息,而Alice無法知道Bob獲得的是哪條消息。

    OT協議按研究類別區分,可以分為以下3種OT協議:

    • 2選1的OT協議(2條消息中正確解密1條)
    • n選1的OT協議(n條消息中正確解密1條)
    • OT擴展協議(n條消息中正確解密m條,m<n)

    受篇幅所限,本文僅介紹2選1與n選1的OT協議,OT擴展協議則在后續系列文章中進行介紹。

    二、利用RSA加密實現n選1的OT協議

    自1981年提出以來,OT協議有多種多樣的實現形式,其中最容易理解的是基于RSA公鑰算法實現的n選1的OT協議[1]。

    2.1 RSA加解密過程簡介

    此處不講解RSA原理,只介紹RSA加解密過程和用到的參數,便于密碼學知識儲備不足的讀者理解后面的OT協議。

    RSA密鑰參數:N=p*q,L=(p-1)*(q-1)其中p和q為大素數。

    RSA公私鑰對:生成d和e,滿足d與L互質,e與L互質,且d*e mod L=1,則令(d,N)為公鑰,e為私鑰。

    則RSA算法對明文m(m為大整數)的加解密過程如圖2所示。

    圖2 RSA算法加解密計算過程

    2.2 RSA實現n選1的OT協議過程描述

    基于RSA公鑰算法實現的n選1的OT協議執行過程如圖3所示。

    dqsx

    圖3 基于RSA公鑰算法實現n選1的OT協議執行過程

    協議執行過程分為4個步驟:

    1. Alice有n條消息,則產生n個RSA公私鑰對,并將n個私鑰保留,n個公鑰發送給Bob。
    2. Bob隨機產生一個大整數key,假定Bob想要獲得第t條消息,則Bob用收到的第t個RSA公鑰加密大整數key,加密計算結果為s,Bob將s發送給Alice。
    3. Alice用保留的n個RSA私鑰,依次解密s,獲得n個解密結果,依次為{key1,key2,…,keyt,…,keyn};利用對稱加密算法,利用key1~keyn,加密對應的消息m1~mn,得到密文消息M1~Mn,將M1~Mn發送給Bob。
    4. Bob利用自己掌握的大整數key作為密鑰,對第t條密文Mt進行對稱解密,則得到想要的第t條原始明文消息mt

    2.3 n選1的OT協議解決百萬富翁問題

    將圖1中的百萬富翁問題和圖3中的n選1的OT協議結合,我們可以對圖1中的操作步驟做如圖4的改造:

    Step1:Alice構造9條明文消息,序號<x,消息為“0”;否則消息為“1”。

    Step2:Alice與Bob執行9選1的OT協議,解密第7條消息,看到0,y<x;看到1,y≥x。


    圖4 基于n選1的OT協議實現百萬富翁問題

    2.4 協議分析

    該協議執行過程可以滿足OT協議中Alice和Bob的核心訴求,關鍵在于第2步和第3步。

    第3步中,Alice利用n個私鑰逐個嘗試解密s,得到key1~keyn,由于s是由Bob利用第t個公鑰加密整數key計算得到的,因此只有keyt=key,但對于Alice來說,key1~keyn都是大整數,根本無法區分哪個才是Bob掌握的key,實現了Bob的訴求,即Alice無法知道Bob選擇的是哪條消息。

    對于Bob來說,拿到了n個密文消息M1~Mn,但是自己只有一個key,此key只能解密消息Mt,對于其他n-1條消息則無法解密,實現了Alice的訴求,即Bob只能正確得要Bob想要得到1條消息,無法正確得到其他n-1條消息。

    如果n=2,則該n選1的OT協議就退化成了2選1的OT協議。

    雖然基于RSA實現的n選1的OT協議簡單易懂,但是卻存在如下缺陷:

    • key為0或1時,Alice的訴求無法保證。Bob如果將key指定為0或1,則根據圖2中RSA的加解密計算方法,無論私鑰e是否正確,解密后的m0=m均成立,意味著第3步中,Alice強行解密s得到的key1~keyn均等于key,則Bob可以解密所有的消息,獲得所有的明文m1~mn
    • 協議計算效率有待優化。第1步Alice需要產生n個RSA公私鑰對,而RSA公私鑰對的產生比較耗時。

    為了提高安全性和計算效率,還有基于其他密碼學方法的OT協議,如基于離散對數的OT協議,將在本文第四節和第五節中進行介紹。(如果您僅希望簡單了解OT協議的原理和能解決的問題,則讀到此處足矣,本文后面的內容適合有一定密碼學基礎讀者。)

    三、基于離散對數實現2選1的OT協議

    為了優化OT協議計算效率和安全性,學者一般對2選1的OT協議和n選1的OT協議分開進行研究。對于2選1的OT協議,Tung Chou[2]于2015年基于離散對數問題,在DH密鑰協商協議的基礎上設計的2選1的OT協議,被認為是一個簡單清晰的2選1的OT協議。

    3.1 離散對數簡介

    離散對數問題通俗理解:有限域Fp*(p為大素數,Fp*中元素共p-1個整數,取值1~p-1)上大整數的冪乘取模容易計算(ab mod p=>c,a、b∈Fp*),而對數計算困難( log a c=>b)。

    3.2 離散對數實現2選1的OT協議過程描述

    基于離散對數實現2選1的OT協議執行過程如圖5所示。

    圖5 離散對數實現2選1的OT協議執行過程

    協議執行過程分為4個步驟:

    • Alice有消息m0、m1∈Fp*,則Alice挑選g、a∈Fp*,并計算A=gamod p,將A、g、p發送給Bob。
    • Bob想要第σ條消息(σ=0或1),Bob挑選b∈Fp*,并計算B=Aσ*gb mod p,將B發送給Alice。
    • Alice利用a、A、B,按照圖4中的步驟3計算C0和C1的值,然后用C0為密鑰,對稱加密m0;用C1為密鑰,對稱加密m1。將加密后的密文M0和M1傳遞給Bob。
    • Bob利用A和b計算解密密鑰gab mod p,對稱解密對應的密文后拿到想要的正確消息。

    3.3 協議分析

    該協議的核心步驟是步驟2和步驟3,對這兩步中的參數B、C0、C1進行展開,展開后如圖6所示。

    圖6 2選1的OT協議部分參數展開

    從圖6的展開式可知,無論σ=0還是σ=1,C0和C1始終只有一個為gab,而另一個對于Bob而言則不可計算(Bob不知道a的值),gab的計算實質上就是DH密鑰協商協議。

    對于Alice來說,僅知道B、A、g,不知道b的情況下,由于離散對數問題難解,因此是無法推斷出σ=0還是σ=1。

    與2.2的協議相比,該協議不存在Bob選擇特殊的b會導致密文消息M0和M1同時正確解密這一缺陷。

    四、基于離散對數實現n選1的OT協議

    章節將以Wen-Guey Tzeng[3]提出的高效n選1的OT協議為例,講解如何基于離散對數實現基本的n選1的OT協議。

    4.1 離散對數實現n選1的OT協議過程描述

    基于離散對數實現n選1的OT協議執行過程如圖7所示。

    圖7 離散對數實現n選1的OT協議執行過程

    協議執行過程分為4個步驟:

    • Alice有n條消息{m1,…,mn},mi∈G(G代表素數域Fp*),挑選G的兩個生成元g和h,將g、h、p發送給Bob。
    • 假定Bob想獲得第t條消息,則Bob隨機選擇大整數r∈G,并計算y=gr*htmod p,將y發送給Alice。
    • Alice利用y、g、h,分別對n條消息,重復執行圖6中左下角的計算步驟,每一次執行都會隨機選擇大整數ki∈G,并結合消息mi計算ai和bi。然后將n組(ai,bi)發送給Bob。
    • Bob拿到n組(ai,bi)后,利用掌握的大整數r,計算想要的第t條消息mt=bt∕(at)r

    4.2 協議分析

    對于第4步Bob的操作,我們把消息mt泛指為mx,則對mx的計算公式展開后如圖8所示。


    圖8 消息mx的計算公式展開

    從圖8可以看出,要想獲得消息mx,要么令x=t,此時消息為Bob想要獲得的消息;要么計算出h(t-x)*kx,由于kx是Alice的秘密數字,因此保證了Bob不可能正確解密除消息mt之外的其余n-1條消息。

    對于Alice來說,雖然知道y、g、h,但是不知道r的情況下,由于離散對數問題難解,因此是無法推斷出t的正確值。

    與2.2的協議相比,該協議不存在Bob選擇特殊的r會導致n條消息同時正確解密這一缺陷,同時也不存在需要產生n對公私鑰這一耗時操作。

    五、總結

    本文介紹了OT協議和3個基于密碼學實現的OT協議實例,并結合百萬富翁問題的通俗解法看到了OT協議的應用實例,這樣的實例很難看出OT協議的重要性。

    其實OT協議是安全多方計算中很重要的一個協議,在安全多方計算系列的首篇文章(安全多方計算之前世今生)中,我們提到,安全多方計算的通用技術路線可以用混淆電路解決,而混淆電路的構建離不開OT協議。因此,下期文章將會講解如何通過OT協議實現混淆電路,以及如何實現基于混淆電路的通用安全多方計算路線。

    參考文獻

    [1] https://en.wikipedia.org/wiki/Oblivious_transfer

    [2] Chou T , Orlandi C . The Simplest Protocol forOblivious Transfer[C]// International Conference on Cryptology and InformationSecurity in Latin America. Springer International Publishing, 2015.

    [3] Tzeng W G . Efficient 1-out-of-noblivious transfer schemes with universally usable parameters[J]. IEEETransactions on Computers, 2004, 53(2):p.232-240.

    rsa離散對數
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    環簽名算法種類很多,大多數算法設計基于雙線性對或大素數難分解,在安全性和運算速度方面有待提高。與基于橢圓曲線離散對數相比,雙線性對的優勢并不明顯,因為它無法運用一樣長度的密鑰提供同樣的安全性能。為了能夠提升方案的安全性以及能夠保證簽名者身份的完全匿名性,基于SM2商用密碼算法設計了一個新的環簽名方案。利用單向函數設計簽名算法,并對方案的安全性進行了嚴格證明,保證了新方案的正確性、安全性與隱匿性。
    通過實驗測試了鏈上執行效果,并驗證了該方案在隱私數據保護方面的有效性,以及在密鑰共享方面的安全性。確保隱私數據安全最好的方法就是對隱私數據進行加密處理,而目前大多數的區塊鏈平臺都不具備加密用戶數據的功能 。1985 年塔希爾提出了 ElGamal 加密算法 ,該加密算法基于離散對數難題。2005 年,Regev首次提出了容錯學習問題。此外,Shamir 首次提出了通過門限完整恢復密鑰的方法,但是在該方案中,如果密鑰分發方故意分發
    量子密鑰分配的安全性包括協議的安全性和實際系統的安全性,協議理論上的信息論安全性已經得到了完整的證明,然而實際系統由于器件存在著非理想性,會導致產生各種安全性漏洞,如何分析和應對實際系統安全性是量子密鑰分配技術走向應用所面臨的重要課題,總結了量子密鑰分配安全性的進展情況和面臨的難點問題,并對未來的研究方向進行了展望。
    但隨著工業互聯網的發展,信息安全問題也逐漸成為影響數字工業可持續發展的重要因素。結合工業領域數字化發展與整體安全需求,天融信率先提出將功能安全與信息安全充分融合的“雙安融合”理念,將功能安全與信息安全進行有效融合,有效落實安全生產的最終目標,護航工業互聯網安全。全球活躍物聯網終端設備數量增長迅速,互聯網面臨的攻擊也在逐年提升,數據隱患加大。
    一、引言 http與https區別:HTTP 由于是明文傳輸,所以在安全性上存在以下三個風險: 竊聽風險,因為明文傳輸,可以直接抓包獲取傳輸的數據,就會導致信息的泄漏。 篡改風險,比如強制入垃圾廣告。 冒充風險,如搭建一個某平臺的仿真網站,通過DNS欺騙誘導用戶訪問。 HTTPS 在 HTTP 與 TCP 層之間加入了SSL/TLS 協議
    1985 年Deutsch進一步闡述了量子計算機的基本概念,并證實了在某些方面,量子計算機相比經典計算機而言確實具有更強大的功能。除此之外,歐盟、加拿大、中國等組織、國家和地區在量子計算機領域的研究也做出積極響應并取得了一系列的研究成果。2001 年, 一 個 由 IBM 公司成功研發的 7qubit 的示例性量子計算機成功領跑了該領域的研究。
    CNSA2.0 對稱密鑰算法3、通用抗量子公鑰算法NIST最近才宣布了后量子密碼的標準化選擇,因此,目前既沒有最終標準也沒有現實有效的聯邦信息處理標準。NSA敦促NSS所有者和經營者特別需要注意這要求,在此期間仍需遵守CNSA1.0。NSA預計,符合NSM-10的NSS過渡到QR算法將在2035年完成,NSA敦促供應商、NSS業主和運營商盡一切努力,在這一最后期限前完工。在適當的情況下,CNSA2.0算法將在NSS的商業產品類中強制使用,同時保留允許在特殊情況下使用其他算法的選項。
    密碼乃國之重器,是保護國家利益的戰略性資源,是網絡安全的核心技術和基礎支撐。根據2017年4月《密碼法》(草案),我國密碼分為核心密碼、普通密碼和商用密碼。核心密碼、普通密碼用于保護國家秘密信息;而商用密碼用于保護不屬于國家秘密的信息。 這樣看來,是不是商用密碼的安全性相對來說比較差呢?不少人有這樣的疑惑。為了弄明白說清楚這個問題,讓我們先從密碼算法安全性的含義本身說起。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类