密碼學(xué)課程設(shè)計(jì)報(bào)告_第1頁
密碼學(xué)課程設(shè)計(jì)報(bào)告_第2頁
密碼學(xué)課程設(shè)計(jì)報(bào)告_第3頁
密碼學(xué)課程設(shè)計(jì)報(bào)告_第4頁
密碼學(xué)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課 程 設(shè) 計(jì) 報(bào) 告題目: SPN和RSA密碼算法的 快速實(shí)現(xiàn)與安全性分析 課程名稱: 密碼學(xué) 專業(yè)班級: 信息安全1302班 學(xué) 號: 姓 名: 指導(dǎo)教師: 報(bào)告日期: 2015.10.9 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院20 / 23文檔可自由編輯打印目錄一 實(shí)驗(yàn)?zāi)康?二 實(shí)驗(yàn)內(nèi)容及基本要求1三 實(shí)驗(yàn)原理13.1、分組密碼SPN13.2、RSA的加/解密及快速加/解密53.3、隨機(jī)性檢測6四 實(shí)驗(yàn)過程64.1、原始SPN64.1.1 SPN加密64.1.2 線性密碼分析84.1.3 差分密碼分析94.2、RSA的加/解密及快速加/解密114.2.1 生成大素?cái)?shù)114.2.2 運(yùn)用模重復(fù)平方的RSA加

2、/解密124.2.3 運(yùn)用蒙哥馬利的RSA快速加解密134.2.4 運(yùn)用中國剩余定理的RSA解密154.3、隨機(jī)性檢測16五 實(shí)驗(yàn)結(jié)果165.1、SPN165.2、RSA的加/解密及快速加/解密175.3、文件加解密175.4、隨機(jī)性檢測18六 實(shí)驗(yàn)小結(jié)20一 實(shí)驗(yàn)?zāi)康耐ㄟ^課程設(shè)計(jì)加強(qiáng)學(xué)生對加解密具體知識的理解,提高學(xué)生對密碼學(xué)這門課程的認(rèn)識。同時(shí)鍛煉學(xué)生的實(shí)踐動手能力,使同學(xué)們具有簡單加解密以及密碼分析的能力。二 實(shí)驗(yàn)內(nèi)容及基本要求(1)原始SPN(教材上)算法的實(shí)現(xiàn)。(2)對上述算法進(jìn)行線性密碼分析及差分密碼分析(求出所有32比特密鑰)。(3)增強(qiáng)以上SPN的安全性(如增加分組的長度、密鑰

3、的長度、S盒、輪數(shù)等)。(4)對原始及增強(qiáng)的SPN進(jìn)行隨機(jī)性檢測,對檢測結(jié)果進(jìn)行說明。(5)生成RSA算法的參數(shù)(如p、q、N、私鑰、公鑰等)。(6)快速實(shí)現(xiàn)RSA(對比模重復(fù)平方、蒙哥馬利算法和中國剩余定理)。(7)結(jié)合RSA和增強(qiáng)后的SPN實(shí)現(xiàn)文件(或通信)的加解密。(8)掌握線性、差分分析的基本原理與方法。(10)體會位運(yùn)算、預(yù)計(jì)算在算法快速實(shí)現(xiàn)中的作用。(11)可借助OpenSSL、GMP、BIGINT等大數(shù)運(yùn)算庫的低層基本函數(shù),實(shí)現(xiàn)過(12)程中必須體現(xiàn)模重復(fù)平方、中國剩余定理和蒙哥馬利算法的過程。(13)獨(dú)立完成課程設(shè)計(jì)內(nèi)容,現(xiàn)場演示并講解。(14)課程設(shè)計(jì)完成后一周內(nèi),提交課程設(shè)

4、計(jì)報(bào)告。三 實(shí)驗(yàn)原理3.1、分組密碼SPN (1)迭代密碼迭代密碼的核心是一個(gè)密鑰編排方案和一個(gè)輪函數(shù)密鑰編排方案對密鑰k進(jìn)行變換,生成Nr個(gè)子密鑰(也叫輪密鑰),記為k1,k2,.,kNr輪函數(shù)g是一個(gè)狀態(tài)加密函數(shù),以ki為密鑰對當(dāng)前狀態(tài)wr-1進(jìn)行變換,輸出新的狀態(tài)值wr,即g(wr-1,ki)=wr;輪函數(shù)是單射函數(shù),存在一個(gè)逆變換g-1,有g(shù)-1(wr,ki)=wr-1迭代密碼的加密為將密鑰k編排成Nr個(gè)輪密鑰k1,k2,.,kNr,將明文x定義為初始狀態(tài)w0,經(jīng)過Nr輪變換得到wNr為密文y,即w0=x, w1=g(w0,k1), w2=g(w1,k2), .wNr-1=g(wNr-

5、2,kNr-1), wNr=g(wNr-1,kNr)y=wNr迭代密碼的解密為將密文y定義為初始狀態(tài)wNr,經(jīng)過Nr輪逆變換得到w0為明文x,即y=wNr, wNr-1=g-1(wNr,kNr),wNr-2=g-1(wNr-1,kNr-1).w1=g-1(w2,k2), w0=g-1(w1,k1),x=w0(2)代替-置換網(wǎng)絡(luò)(Substitution-Permutation Network)代替-置換網(wǎng)絡(luò)(Substitution-Permutation Network)是一種簡單的迭代密碼。處理的明文單元和狀態(tài)值長度為lm,輪函數(shù)g包括兩個(gè)核心變換代替和置換,分別記為s和p,有s : 0,

6、1l 0,1lp : 1,2,.,lm 1,2,.,lm 在進(jìn)行輪函數(shù)變換前,先用輪密鑰和狀態(tài)值進(jìn)行異或(稱為白化)(3)SPN密碼體制設(shè)計(jì)設(shè)l,m,Nr是正整數(shù),P=C=0,1lmK(0,1lm)Nr+1是由初始密鑰k用密鑰編排算法生成的所有可能的密鑰編排方案集合,一個(gè)密鑰編排方案記為(k1,k2,.,kNr+1)狀態(tài)值w長度為lm,記為w1,w2,.,wlm;w可以看成m個(gè)長度為l的子串連接而成,記為w=w,w,.,w,其中w=w(i-1)l+1,w(i-1)l+2,.,w(i-1)l+l加密過程使用如下算法描述:w0=xfor r=1 to Nr-1 ur=wr-1kr / 白化 for

7、 i=1 to m vr=s(ur) / 代替 wr=(vrp(1),vrp(2),.,vrp(lm) / 置換uNr=wNr-1kNrfor i=1 to m vNr=s(uNr) / 代替y=vNrkNr+1 / 白化return y具體加密過程如圖3.1所示: 圖3.1 SPN加密過程示例(4)線性密碼分析線性密碼分析,是通過分析S盒的線性特性,從而發(fā)現(xiàn)明文比特、密文比特和密鑰比特之間可能存在的線性關(guān)系,如果S盒設(shè)計(jì)不當(dāng),這種線性關(guān)系會以較大的概率存在,稱為概率線性關(guān)系。線性密碼分析一種已知明文攻擊方法,已知x和y,確定k或k的部分比特。其中,S盒的選擇對SPN的安全性影響巨大,假設(shè)一個(gè)

8、S盒按如下規(guī)則設(shè)計(jì),見圖3.2圖3.2 S盒示例可以發(fā)現(xiàn)其實(shí)是將輸入進(jìn)行了循環(huán)左移,如圖3.3圖3.3 輸入輸出線性關(guān)系示例這種輸入輸出關(guān)系是一種”線性關(guān)系”。采用已知明文攻擊方法,如果掌握了足夠多的明-密文對,即可求出輪密鑰ki,進(jìn)而根據(jù)輪密鑰編排方案反向推導(dǎo)出加密密鑰k。線性密碼分析思路為找到足夠多的明文-密文對,對可能的密鑰進(jìn)行窮舉,計(jì)算相關(guān)隨機(jī)變量的偏差,正確的密鑰作用下,偏差的絕對值最大不需要對全部密鑰空間進(jìn)行窮舉,只需要對隨機(jī)變量有影響的密鑰比特進(jìn)行窮舉,這些密鑰比特稱為候選子密鑰具體算法如下:線性攻擊(T, T, s-1)for (L1,L2)=(0,0) to (F,F) /

9、L1,L2表示候選子密鑰k5和k5 CountL1,L2=0 / 每個(gè)候選子密鑰分配一個(gè)計(jì)數(shù)器并初始化為0for each (x,y) T for (L1,L2)=(0,0) to (F,F) v4 = L1yv4 = L2yu4 = s-1(v4)u4 = s-1(v4)z = x5x7x8u46u48u414u416 / 計(jì)算隨機(jī)變量值if z=0 CountL1,L2 +; max = -1for (L1,L2)=(0,0) to (F,F) CountL1,L2 = | CountL1,L2 - T/2 |if CountL1,L2 max max = CountL1,L2 maxke

10、y = (L1,L2)/ maxkey即為所求子密鑰(4)差分密碼分析通過分析明文對的差值對密文對差值的影響來恢復(fù)某些密鑰比特的分析方法,分析兩個(gè)輸入的異或和兩個(gè)輸出的異或之間的線性關(guān)系。構(gòu)造若干個(gè)明文串對,每對明文的異或結(jié)果相同,觀察相應(yīng)的密文異或結(jié)果。差分分析是一種選擇明文攻擊方法,比線性分析更早提出,分析效果略差于線性分析。仍以“循環(huán)左移”S盒為例假設(shè)兩個(gè)輸入分別是x=1010和x*=1101則相應(yīng)的輸出是y=0101和y*=1011輸入的異或?yàn)閤=xx*=0111輸出的異或?yàn)閥=yy*=1110可以發(fā)現(xiàn)不論x和x*如何變化,只要它們的異或是0111,相應(yīng)輸出的異或都是1110,(x,y

11、)被稱為一個(gè)差分如果S盒是線性的,整個(gè)SPN也會是線性的,明文和密文的差分也會是線性的差分分析的優(yōu)勢在于,分析過程基本可以忽略密鑰的干擾作用。差分密碼分析思路找到足夠多的四元組(x,x*,y,y*),其中x=xx*固定不變。對可能的密鑰進(jìn)行窮舉,計(jì)算相關(guān)差分的擴(kuò)散率,正確的密鑰作用下,擴(kuò)散率應(yīng)最大和線性分析一樣,不需要對全部密鑰空間進(jìn)行窮舉,只需要對候選子密鑰進(jìn)行窮舉即可。具體算法如下:差分攻擊(T, T, s-1)for (L1,L2)=(0,0) to (F,F) / L1,L2表示候選子密鑰k5和k5 CountL1,L2=0 / 每個(gè)候選子密鑰分配一個(gè)計(jì)數(shù)器并初始化為0for each

12、 (x,x*,y,y*) T if (y=y* and y=y*) / 只考慮y和y=0 for (L1,L2)=(0,0) to (F,F) v4 = L1yv4 = L2yu4 = s-1(v4)u4 = s-1(v4)(v4)*= L1(y)*(v4)* = L2(y)*(u4)* = s-1(v4) *)(u4)* = s-1(v4)*)(u4)=u4(u4)*(u4)=u4(u4)*if (u4)=0110 and (u4) = 0110 CountL1,L2 +; max = -1for (L1,L2)=(0,0) to (F,F) if CountL1,L2 max max =

13、CountL1,L2 maxkey = (L1,L2) / maxkey即為所求子密鑰3.2、RSA的加/解密及快速加/解密非對稱密碼算法是指一個(gè)加密系統(tǒng)的加密密鑰和解密密鑰是不同的,或者說不能用其中一個(gè)推導(dǎo)出另一個(gè)。在非對稱密碼算法的兩個(gè)密鑰中,一個(gè)是用于加密的密鑰,它是可以公開的,稱為公鑰;另一個(gè)是用于解密的密鑰,是保密的,稱為私鑰。非對稱密碼算法解決了對稱密碼體制中密鑰管理的難題,并提供了對信息發(fā)送人的身份進(jìn)行驗(yàn)證手段,是現(xiàn)代密碼學(xué)最重要的發(fā)明。RSA密碼體制是目前為止最成功的非對稱密碼算法,它是在1977年由Rivest、Shamir和Adleman提出的第一個(gè)比較完善的非對稱密碼算法

14、。它的安全性是建立在“大數(shù)分解和素性檢測”這個(gè)數(shù)論難題的基礎(chǔ)上,即將兩個(gè)大素?cái)?shù)相乘在計(jì)算上容易實(shí)現(xiàn),而將該乘積分解為兩個(gè)大素?cái)?shù)因子的計(jì)算量相當(dāng)大。雖然它的安全性還未能得到理論證明,但經(jīng)過20多年的密碼分析和攻擊,迄今仍然被實(shí)踐證明是安全的。RSA算法描述如下:(1)公鑰選擇兩個(gè)互異的大素?cái)?shù)p和q,n是二者的乘積,即n=pq,使(n)=(p-1)(q-1)為歐拉函數(shù)。隨機(jī)選取正整數(shù)e,使其滿足gcd(e, (n) =1,即e和(n) 互質(zhì),則將(n,e)作為公鑰。(2)私鑰求出正數(shù)d,使其滿足ed=1(mod(n),則將(n,d)作為私鑰。(3)加密算法對于明文M,由C=Me(mod n),得到

15、密文C。(4)解密算法對于密文C,由M=Cd(mod n),得到明文M。如果竊密者獲得了n、e和密文C,為了破解密文必須計(jì)算出私鑰d,為此需要先分解n。為了提高破解難度,達(dá)到更高的安全性,一般商業(yè)應(yīng)用要求n的長度不小于1024位,更重要的場合不小于2048位。3.3、隨機(jī)性檢測隨機(jī)性測試方法對于一個(gè)用DES加密產(chǎn)生的密文序列,分別以下面三種情況設(shè)計(jì)測試隨機(jī)性工具(1)0和1在密文中所占比例(2) 00、01、10、11在密文中所占比例(3) 000、001、010、011、100、101、110、111在密文中所占比例四 實(shí)驗(yàn)過程4.1、原始SPN 4.1.1 SPN加密明文是以string的

16、形式輸入的,所以在加密之前,需要將明文切分。將string轉(zhuǎn)成byte數(shù)組,再將兩個(gè)數(shù)組單元拼接成一個(gè)16比特位的單元,若byte數(shù)組元素個(gè)數(shù)為基數(shù),則在最后一個(gè)單元補(bǔ)上8個(gè)0,湊成一個(gè)16比特位的單元。具體代碼如下:void Permutation(int a16, int b16) int i; for (i=0; i16; i+) bPipi-1 = ai; void Int_2_Bit(int a,int b4) b3 = a%2; a = a/2; b2 = a%2; a = a/2; b1 = a%2; a = a/2; b0 = a%2;void Array_assign(int

17、 a,int b,int i) int j; for (j=0; ji; j+) bj = aj; int Array_equality(int a,int b,int i) int j; for (j=0; ji; j+) if (aj!=bj) return 0; return 1;void SPN_Encryption(int Plain16,int K32,int Cipher16) int w16,u16,v16; int k616 = 0; int r,j; for (j=1; j6; j+) InitiaKey(K, kj, j);/生成輪密鑰并存入數(shù)組k for (j=0; j

18、16; j+) wj = Plainj; for (r=1; rNR; r+) XOR(w, kr, u);/w = k u Substitution(u, v);/將u代換為v Permutation(v, w);/將v置換為w XOR(w, kNR, u); Substitution(u, v); XOR(v, kNR+1, Cipher);4.1.2 線性密碼分析依據(jù)線性密碼分析的原理與算法,我主要采用位操作來實(shí)現(xiàn)該算法,具體代碼如下:void SPNLinearAttack(int L14,int L24) int Plain16; int Cipher16; int Count161

19、6 = 0; int v24,v44,y24,y44,u24,u44; int i,j,k; int p ,q ,z,max; for (k=0; kN0; k+) /N0為8000,即對8000對明密文進(jìn)行攻擊 for (p=0; p16; p+) Plainp = rand()%2;/隨機(jī)數(shù)生成明文 SPN_Encryption(Plain, K, Cipher); for (i=0; i4; i+) y2i = Cipheri+4; for (j=0; j4; j+) y4j = Cipherj+12;/攻擊特定位 for (i=0; i16; i+) for (j=0; j16; j+

20、) Int_2_Bit(i, L1); Int_2_Bit(j, L2); for (p=0; p4; p+) v2p = L1py2p; for (q=0; q4; q+) v4q = L2qy4q; Reverse_Substitution(v2, u2); Reverse_Substitution(v4, u4); z = Plain4Plain6Plain7u21u23u41u43; if(z=0) Countij+; max = -1; p = q = 0; for (i=0; i16; i+) for (j=0; j max) max = Countij; p=i, q=j; In

21、t_2_Bit(p, L1); Int_2_Bit(q, L2); for (i=0; i4; i+) printf(%d,L1i); printf( ); for (j=0; j4; j+) printf(%d,L2j); 4.1.3 差分密碼分析依據(jù)差分密碼分析的原理與算法,我主要采用位操作來實(shí)現(xiàn)該算法,具體代碼如下:void SPNDifAttack(int L34,int L44) int check4 = 0,1,1,0; int x016,x16; int x116 = 0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0; int Cipher016 = 0,Ciphe

22、r16 =0; int v24,v44,u24,u44,v2_04,v4_04,u2_04,u4_04,u2_14,u4_14; int y14,y24,y34,y44,y1_04,y2_04,y3_04,y4_04; int Count1616 = 0; int i,j,k,max; int p = 0;int q = 0; for (k=0; kN2; k+) for (p=0; p16; p+) xp = rand()%2; x0p = xpx1p; SPN_Encryption(x, K, Cipher); SPN_Encryption(x0, K, Cipher0); Array_a

23、ssign(Cipher, y1, 4);/將cipher賦值給y1 Array_assign(Cipher+4, y2, 4); Array_assign(Cipher+8, y3, 4); Array_assign(Cipher+12, y4, 4); Array_assign(Cipher0, y1_0, 4); Array_assign(Cipher0+4, y2_0, 4); Array_assign(Cipher0+8, y3_0, 4); Array_assign(Cipher0+12, y4_0, 4); if (Array_equality(y1, y1_0, 4) & Ar

24、ray_equality(y3, y3_0, 4) /遍歷,真實(shí)密文與嘗試密文全部相同,則說明嘗試密鑰可行 for (i=0; i16; i+) for (j=0; j16; j+) Int_2_Bit(i, L3); Int_2_Bit(j, L4); XOR_4(L3, y2, v2); XOR_4(L4, y4, v4); Reverse_Substitution(v2, u2); Reverse_Substitution(v4, u4); XOR_4(L3, y2_0, v2_0); XOR_4(L4, y4_0, v4_0); Reverse_Substitution(v2_0, u

25、2_0); Reverse_Substitution(v4_0, u4_0); XOR_4(u2, u2_0, u2_1); XOR_4(u4, u4_0, u4_1); if (Array_equality(u2_1, check, 4)&Array_equality(u4_1, check, 4) Countij+; max = -1; for (i=0; i16; i+) for (j=0; jmax) max = Countij; p = i,q= j; Int_2_Bit(p, L3); Int_2_Bit(q, L4); for (i=0; i4; i+) printf(%d,L3

26、i); printf( ); for (j=0; j4; j+) printf(%d,L4j); 4.2、RSA的加/解密及快速加/解密4.2.1 生成大素?cái)?shù)運(yùn)用Openssl庫快速生成大素?cái)?shù)。代碼如下:void RSA_InitPara(BIGNUM *p,BIGNUM *q,BIGNUM *n,BIGNUM *a,BIGNUM *b) BIGNUM *fi_n, *p0, *q0, *gcd; const BIGNUM *one; fi_n = BN_new(); p0 = BN_new(); q0 = BN_new(); gcd = BN_new(); one = BN_new(); B

27、N_CTX *ctx = BN_CTX_new(); one = BN_value_one(); BN_generate_prime(p, N1, NULL, NULL, NULL, NULL, NULL);/隨機(jī)生成大素?cái)?shù)p和q BN_generate_prime(q, N1, NULL, NULL, NULL, NULL, NULL); BN_mul(n, p, q, ctx);/n = p * q BN_sub(p0, p, one);/p0 = p - 1 BN_sub(q0, q, one);/q0 = q - 1 BN_mul(fi_n, p0, q0, ctx); do BN_r

28、and_range(b, fi_n); BN_gcd(gcd, b, fi_n, ctx); while (BN_cmp(gcd, one);/隨機(jī)生成b,直到b與fi_n互素為止 BN_mod_inverse(a, b, fi_n, ctx);/a為b模fi_n的逆4.2.2 運(yùn)用模重復(fù)平方的RSA加/解密模重復(fù)平方的思想是將指數(shù)n寫成二進(jìn)制形式n=n0+n1*2+nk-1*2k-1,令a=11) 若n0=1,則計(jì)算a0=a*b(mod m),否則取a0=a,即計(jì)算a0=a*bn0(mod m),再計(jì)算b1=b2(mod m).2) 若n1=1,則計(jì)算a1=a0*b1(mod m),否則取a

29、1=a0,即計(jì)算a1= a0* b1n1(mod m),再計(jì)算b2=b12(mod m)。(k-1)若nk-2=1,則計(jì)算ak-2=ak-3*bk-2(mod m),否則取ak-2=ak-3,即計(jì)算ak-2=ak-3*bk-2nk-2(mod m),再計(jì)算bk-1=bk-22(mod m)。(k)若nk-1=1,則計(jì)算ak-1=ak-2*bk-1(mod m),否則取ak-1=ak-2,即計(jì)算ak-1=ak-2*bk-1nk-1(mod m),最后,ak-1就是bn(mod m)具體加密解密實(shí)現(xiàn)代碼如下:模重復(fù)平方算法void Mo_Repeat_Square(BIGNUM *b,BIGNUM

30、 *y,BIGNUM *n,BIGNUM *m) BIGNUM *d = BN_new(); BIGNUM *n0 = BN_new(); BIGNUM *nn = BN_new(); BIGNUM *b0 = BN_new(); BIGNUM *bb = BN_new(); BIGNUM *a0 = BN_new(); BIGNUM *a = BN_new(); BIGNUM *two = BN_new(); BN_CTX *ctx = BN_CTX_new(); BN_set_word(a0, 1); BN_set_word(two, 2); BN_copy(n0, n); BN_copy

31、(b0, b); do BN_div(d, nn, n0, two, ctx); if (BN_is_one(nn) BN_mod_mul(a, a0, b0, m, ctx); else BN_copy(a, a0); BN_mod_sqr(bb, b0, m, ctx); BN_copy(n0, d); BN_copy(a0, a); BN_copy(b0, bb); while (!BN_is_zero(d); BN_copy(y, a);4.2.3 運(yùn)用蒙哥馬利的RSA快速加解密蒙哥馬利算法流程圖如下圖5.1所示:圖5.1 蒙哥馬利算法流程根據(jù)上述流程圖,寫出相應(yīng)代碼,具體代碼如下:蒙

32、哥馬利算法相關(guān)代碼:void Montgomerie(BIGNUM *a,BIGNUM *y,BIGNUM *b,BIGNUM *n) BIGNUM *d = BN_new(); BIGNUM *one = BN_new(); BIGNUM *zero = BN_new(); BIGNUM *two = BN_new(); BIGNUM *temp1 = BN_new(); BIGNUM *temp2 = BN_new(); BN_CTX *ctx = BN_CTX_new(); BN_set_word(zero, 0); BN_set_word(one, 1); BN_set_word(tw

33、o, 2); BN_set_word(d, 1); while (BN_cmp(b, zero) = 1) BN_mod(temp1, b, two, ctx); if (!BN_cmp(temp1, zero) BN_mod_sqr(temp2, a, n, ctx); BN_copy(a, temp2); BN_div(temp2, NULL, b, two, ctx); BN_copy(b, temp2); else BN_mod_mul(temp2, d, a, n, ctx); BN_copy(d, temp2); BN_sub(temp2, b, one); BN_copy(b,

34、temp2); BN_copy(y, d);4.2.4 運(yùn)用中國剩余定理的RSA解密分別算出模p與模q的結(jié)果,再利用中國剩余定理,算出模n=p*q的結(jié)果,最終解密出明文,具體代碼如下圖:中國剩余定理void CRT(BIGNUM *x,BIGNUM *y,BIGNUM *p,BIGNUM *q,BIGNUM *m,BIGNUM *a) BIGNUM *M1 = BN_new(); BIGNUM *M2 = BN_new(); BIGNUM *M1_Inverse = BN_new(); BIGNUM *M2_Inverse = BN_new(); BIGNUM *x1 = BN_new(); BIGNUM *x2 = BN_new(); BIGNUM *temp1 = BN_new(); BIGNUM *temp2 = BN_new(); BIGNUM *temp3 = BN_new(); BIGNUM *temp4 = BN_new(); BIGNUM *ap = BN_new(); BIGNUM *aq = BN_new(); BIGNUM *psub = BN_new(); BIGNUM *qsub = BN_new(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論