- 功能型密碼算法設計與分析
- 黃欣沂 賴建昌
- 1939字
- 2023-11-07 17:24:07
1.5 Cramer-Shoup公鑰加密方案
1998年,Cramer和Shoup提出了一個實用且滿足自適應性選擇密文安全的公鑰加密方案。本節簡要回顧Cramer-Shoup加密方案的構造和安全性分析。
1.5.1 方案描述
●SysGen:輸入安全參數λ,系統參數生成算法生成循環群(G,p,g),p為群G的階,g為群G的生成元,選取密碼函數H:{0,1}*→Zp,輸出系統參數SP=(G,p,g,H)。
●KeyGen:輸入系統參數SP,私鑰生成算法隨機選取群元素g1,g2∈G,α1,α2,β1,β2,γ1,γ2∈Zp,計算,
,
,按照如下形式輸出公鑰pk和私鑰sk:
pk=(g1,g2,μ,υ,h),sk=(α1,α2,β1,β2,γ1,γ2)
●Encrypt:輸入待加密的明文數據m∈G,公鑰pk,系統參數SP,加密算法選取隨機數r∈Zp,計算密文CT=(C1,C2,C3,C4)=(,hrm,urvwr),其中w=H(C1,C2,C3)。
●Decrypt:輸入密文CT,私鑰sk,系統參數SP,解密算法首先計算w=H(C1,C2,C3),驗證等式是否成立。若成立,則計算
。
1.5.2 安全性分析
Cramer-Shoup加密方案的安全性基于一個DDH問題的變體,我們首先給出DDH問題的變體。
DDH問題的變體:設(G,p,g)是一個循環群,其中p為群G的階,g為群G的生成元。已知群元素(g,ga,gb,gac,Z)∈G,判斷Z是否等于gbc,其中a,b,c是未知的。
定理1.3 如果DDH問題的變體是難解的,那么Cramer-Shoup加密方案是IND-CCA安全的。
證明:假設在IND-CCA安全模型中,存在一個攻擊算法A,能以不可忽略的優勢ε攻破Cramer-Shoup加密方案,那么我們可以構造一個模擬算法B通過與A交互,以不可忽略的優勢解決DDH問題的變體。設B以循環群(G,p,g)上DDH問題的變體的實例(g1,g2,,
)作為輸入。
系統建立:令系統參數SP=(G,g,p,H),其中H:{0,1}*→Zp為密碼哈希函數,B隨機選取α1,α2,β1,β2,γ1,γ2∈Zp作為私鑰,設公鑰為

公鑰可以從問題實例和給定的參數計算得到。
詢問1:在該階段,敵手允許詢問密文解密。設詢問的密文為CT,由于B知道私鑰,它運行解密算法并將解密結果返回給敵手。
挑戰:A輸出兩個不同的挑戰消息m0,m1∈G。B隨機選取c∈{0,1},計算挑戰密文,其中
由問題實例給出。令r=a1,如果a1=a2,有

因此,CT*為正確的挑戰密文,其加密的消息為mc。
詢問2:敵手在該階段可繼續向挑戰者發出解密詢問,但不能詢問CT*的解密,挑戰者的響應方式與詢問1相同。
猜測:A輸出對挑戰密文中消息的猜測c′,若c=c′,B輸出True,表示給定實例是正確的DDH元組,否則輸出False,表示不是正確的DDH元組。
根據證明的設置,模擬者B知道私鑰,因此能執行和真實攻擊環境不可區分的解密模擬。在生成私鑰和挑戰密文中,所有的數都是隨機選取的,所以模擬和真實攻擊是不可區分的。在證明中,模擬沒有出現失敗的情況,故模擬成功的概率為1。接下來分析B解決困難問題的概率。
若問題實例中的Z是正確的,該方案的模擬與真實的方案攻擊不可區分,因此敵手有1/2+ε/2的概率猜到正確的加密消息。若Z是錯誤的,敵手最多以的概率正確地猜測到加密消息,分析如下:
令,其中z∈Zp,則敵手可以從公鑰中得到z,α1+zα2,β1+zβ2,γ1+zγ2,可以從挑戰密文中獲得a1,a2,a1(α1+w*β1)+za2(α2+w*β2),a1γ1+a2γ2+
。如果γ1,γ2對于敵手是未知的,且沒有發起解密詢問,那么γ1+zγ2和a1γ1+a2zλ2是隨機且獨立的,因為以下系數矩陣的行列式為非零:

在該情況下,從敵手的視角看,挑戰密文可以看作對消息mc的一次一密加密得到,因此敵手沒有任何的優勢猜到正確的c。下面證明解密詢問不能幫助敵手以不可忽略的優勢攻破挑戰密文。
設)的解密詢問通過驗證,解密結果將返回給敵手C3·
,敵手通過計算得到r1γ1+r2zγ2。如果r1=r2,則敵手所知道的相當于γ1+zγ2,因此,敵手無法獲取額外的信息來破解一次一密加密。否則,敵手可以通過γ1+zγ2和r1γ1+r2zγ2計算出γ1,γ2來破解密文,從而攻破一次一密加密算法。下面證明B能夠以不可忽略的概率拒絕所有與挑戰密文不同的無效密文
。敵手提交的無效密文分以下兩種情況討論:
1)且
,此時B拒絕該形式的密文,因為只有
才會通過驗證。
2),由于哈希函數是安全的,因此有
。如果以下等式成立,則密文可以通過驗證:

也就是說如果敵手能計算出r1(α1+wβ1)+r2z(α2+wβ2),即可通過驗證。
根據證明,包括r1(α1+wβ1)+r2z(α2+wβ2)在內的所有與α1,α2,β1,β2相關的參數為:
α1+zα2
β1+zβ2
a1(α1+w*β1)+za2(α2+w*β2)
r1(α1+wβ1)+r2z(α2+wβ2)
(α1,α2,β1,β2)相應的系數矩陣為

矩陣行列式的值為z(r2-r1)(a2-a1)(w*-w)≠0,因此,r1(α1+wβ1)+r2z(α2+wβ2)是隨機的且與其他給定參數無關。所以,除了以1/p的概率產生C4通過驗證,敵手沒有任何優勢。
當敵手產生一個錯誤的密文提交給解密詢問時,第一次自適應選擇C4成功的概率為1/p,第二次自適應選擇C4成功的概率為1/(p-1)。因此,對于qd次解密詢問,成功生成一個可以通過驗證的不正確密文的概率最多為。此外,敵手有1/2的概率從密文中猜對c。綜上所述,敵手最多有
的概率正確地猜到加密消息。因此,B解決DDH問題的變體的優勢為
