官术网_书友最值得收藏!

1.3 RSA公鑰加密方案

本節首先給出標準RSA加密方案,然后給出修改后的RSA加密方案,使其能夠抵抗選擇明文攻擊,記作RSA-CPA方案,并給出安全性分析。RSA加密算法由Ron Rivest、Adi Shamir和Leonard Adleman于1978年提出,方案的描述如下。

1.3.1 RSA加密方案

設GenPrime是大素數產生算法,λ為系統安全參數。

SysGen:運行大素數產生算法得到兩個素數p,q←GenPrime(λ),其中pq秘密保存。

KeyGen:輸入pq,計算n=pqφ(n)=(p-1)(q-1),選取大整數1<e<φ(n),使得gcd(φ(n),e)=1成立,其中φ(n)為n的歐拉函數。接著計算d,滿足d·e≡1modφ(n),輸出公鑰(n,e),私鑰(n,d)。

Encrypt:輸入待加密的消息m,公鑰(n,e),計算密文cmemod n

Decrypt:輸入密文c,私鑰(n,d),計算mcdmod n

方案的正確性分析如下:由加密過程,可知cmemod n,所以

cdmod nmedmod nm(n)+1mod n

分為下面兩種情況:

1)若mn互素,則由歐拉定理:mφ(n)≡1mod nm(n)≡1mod nm(n)+1mmod n。即cdmod nm

2)若gcd(mn)≠1,注意到n=pq,則意味著mp的倍數或q的倍數,不妨設m=tp,其中t為一正整數。此時必有gcd{m,q}=1,否則m也是q的倍數,從而是pq的倍數,與mn=pq矛盾。由gcd{m,q}=1及歐拉定理得mφq≡1modq,所以mq≡1modq,(mqφp≡1modqmn≡1modq,因此存在一個整數r,使得mn=1+rq,兩邊同乘m=tp得,mn)+1=m+rtpq=m+rtn,即mn)+1mmod n,所以cdmod nm

1.3.2 RSA-CPA方案描述

設GenPrime是大素數產生算法,λ為系統安全參數。

SysGen:運行大素數產生算法得到兩個素數p,q←GenPrime(λ),p,q秘密保存。

KeyGen:輸入pq,計算n=pqφ(n)=(p-1)(q-1),選取大整數1<e<φ(n),使得(φ(n),e)=1成立。接著計算d,滿足d·e≡1modφ(n),輸出公鑰(n,e),私鑰(n,d)。

Encrypt:輸入待加密的消息m,公鑰(ne),選取隨機數,輸出密文CT=(C1C2)≡(remod nHr)⊕m)。

Decrypt:輸入密文CT,私鑰(nd),計算rmod n,計算明文m=Hr)⊕C2

1.3.3 安全性分析

RSA-CPA方案的安全性基于RSA問題的難解性,我們首先給出RSA問題的定義。

RSA問題:已知大整數ney,滿足qeφn)且gcd(φn),e)=1,計算mod n

RSA困難性假設:沒有概率多項式時間的算法能夠解決RSA問題。

定理1.1H是一個隨機諭言機,如果RSA問題是難解的,那么RSA-CPA方案是IND-CPA安全的。

證明:假設在IND-CPA安全模型中,存在一個敵手A能以不可忽略的優勢(概率)ε攻破RSA-CPA方案,那么可以構造一個模擬算法B,通過與A交互以不可忽略的優勢λ)≥2ε解決RSA問題。假設模擬算法B以一個RSA問題實例(ney)為輸入,目標是計算mod n。為描述方便,不妨設加密消息的長度為?

系統建立:模擬算法B隨機選取字符串h*←{0,1}?,設公鑰pk=(ne),并將pk發送給敵手A,其中H被看作由B控制的隨機諭言機。

哈希詢問A可以適應性詢問x的哈希值,B建立列表L(初始值為空),列表元素以二元組(xh)形式存儲,B按照如下方式應答:

●如果x已經在列表中,則以(x,h)中的h應答;

●如果xeymod n,設H(x)=h*,以h*應答,將(x,h*)存入表中,并記下r*=x

●否則隨機選擇h←{0,1}?,設Hx)=h,以h應答,并將(xh)存入表L中。

挑戰A輸出兩個等長的明文數據m0m1B隨機選取比特b∈{0,1},設=y=h*mb,將作為挑戰密文并發送給A

猜測A輸出對b的猜測b′,若b=b′,B輸出哈希詢問階段記下的r*=x作為RSA問題的解,并定義H表示事件——在模擬中A發出Hr*)詢問,即Hr*)出現在L中。

斷言1.1 在以上模擬過程中,B的模擬是完備的。

證明:在以上模擬中,A的視角與其在真實攻擊中的視角是同分布、不可區分的。這是因為

1)AH詢問中的每一個值都是隨機值,而在A對RSA-CPA的真實攻擊中,A得到的是H的函數值,由于假定H是隨機諭言機,因此A得到的H的函數值是均勻的。

2)h*mbA來說,為h*mb做一次一密加密。由h*的隨機性可知,h*mbA來說是隨機的。所以兩種視角不可區分。

斷言1.2 在上述模擬攻擊中Pr[H]≥2ε

證明:根據斷言1.1可知,在猜測階段之前,模擬和真實攻擊是不可區分的。即,當敵手A沒有發出Hr*)詢問時,敵手沒有任何優勢猜到正確的密文,有。根據假設,A能以不可忽略的優勢ε攻破RSA-CPA方案,由斷言1.1可知,模擬和真實攻擊環境是不可區分的,則有,進一步有

又知Pr[b=b′]≥Pr[b=b′|﹁H]·Pr[﹁H]=,所以,即Pr[H]≥2ε

由以上兩個斷言,在上述模擬過程中r*以至少2ε的概率出現在L中。若H發生,則B在哈希詢問階段可找到x滿足xeymod n,即xr*mod n,所以B成功的概率與H發生的概率相同。■

主站蜘蛛池模板: 寿宁县| 常宁市| 贵定县| 平昌县| 麻城市| 开原市| 桃江县| 鄂托克旗| 荆州市| 天峻县| 闽侯县| 治县。| 涞水县| 连山| 新泰市| 陇川县| 太仆寺旗| 姜堰市| 武陟县| 银川市| 那曲县| 子洲县| 东辽县| 平和县| 吴川市| 莱芜市| 三亚市| 海南省| 柳江县| 伊川县| 昌乐县| 绥中县| 东光县| 瓦房店市| 五常市| 延寿县| 孟连| 澎湖县| 台山市| 武乡县| 昔阳县|