版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、密碼學(xué)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告專業(yè):信息安全班級(jí):0903姓名:付曉帆學(xué)號(hào):U 一、 DES 的編程實(shí)現(xiàn)1.實(shí)驗(yàn)?zāi)康?通過(guò)實(shí)際編程掌握DES的加、脫密及密鑰生成過(guò)程,加深對(duì)DES算法的認(rèn)識(shí)。2.實(shí)驗(yàn)原理a.加密過(guò)程DES是一個(gè)分組密碼,使用長(zhǎng)度為56比特的密鑰加密長(zhǎng)度為64比特的明文,獲得長(zhǎng)度為64比特的密文,其加密過(guò)程:(1) 給定一個(gè)明文X,通過(guò)一個(gè)固定的初始置換IP置換X的比特,獲得X0,X0=IP(X)=L0R0,L0R0分別是X0的前32比特和后32比特。(2) 然后進(jìn)行16輪完全相同的運(yùn)算,有如下規(guī)則,其中0i17,K1, K2,K16都是密鑰K的函數(shù),長(zhǎng)度均為48比特:其中函數(shù)f(A,J
2、)的A是一個(gè)長(zhǎng)度為32的比特串,第二個(gè)變量J是一個(gè)長(zhǎng)度為48的比特串,輸出的是一個(gè)長(zhǎng)度為32的比特串,其過(guò)程:a、將f的第一個(gè)變量A根據(jù)一個(gè)固定的擴(kuò)展函數(shù)E擴(kuò)展成為一個(gè)長(zhǎng)度為48的比特串b、計(jì)算,并將所得結(jié)果分成8個(gè)長(zhǎng)度為6的比特串,記為B=B1B2B3B4B5B6B7B8c、使用8個(gè)S盒,每個(gè)Si是一個(gè)固定的4X16階矩陣,它的元素來(lái)自0到15這16個(gè)整數(shù)。給定一個(gè)長(zhǎng)度為6的比特串,用首位兩個(gè)比特作行號(hào),用中間四個(gè)比特作為列號(hào),則Sj(Bj)的取值就是Sj的行號(hào)列號(hào)的整數(shù)所對(duì)應(yīng)的二進(jìn)制表示。記Cj=Sj(Bj),0j9,8個(gè)S盒為:S1: 14,4,13,1,2,15,11,8,3,10,6
3、,12,5,9,0,7, 0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8, 4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13, S2: 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, 3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5, 0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, S3: 10,0,9
4、,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S4: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,1
5、2,7,2,14, S5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S6: 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9
6、,5,15,10,11,14,1,7,6,0,8,13, S7: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,
7、15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11, d、將長(zhǎng)度為32的比特串C=C1 C2 C3 C4 C5 C6 C7 C8通過(guò)一個(gè)固定的置換P置換,將所得結(jié)果P(C)記為f(A,J)。(3) 對(duì)比特串R16 L16應(yīng)用初始置換IP的逆置換IP-1,獲得密文Y,即Y=IP-1(R16 L16)。b子密鑰生成過(guò)程密鑰方案計(jì)算:每一輪都是用不同的、從初始密鑰或稱種子密鑰K導(dǎo)出的48比特密鑰Ki。K是一個(gè)長(zhǎng)度為64的比特串,實(shí)際上除去校驗(yàn)比特只有56比特有效:(1) 給定一個(gè)64比特的密鑰K,刪掉8個(gè)校驗(yàn)比特并利用一個(gè)固定的置換PC-1置換K的剩下的5
8、6比特,記PC-1(K) = C0D0,這里C0D0是PC-1(K)的前28比特、后28比特。(2) 對(duì)每一個(gè)i,0i17,計(jì)算: 其中LSi表示一個(gè)或兩個(gè)位置的左循環(huán)移位,當(dāng)i=1,2,9,4,16時(shí),一個(gè)位置,當(dāng)i=3,4,5,6,7,8,10,11,12,13,14,15時(shí),移動(dòng)兩個(gè)位置。PC-2是另一個(gè)固定置換。C. 解密過(guò)程與加密的過(guò)程相同,是加密的逆過(guò)程,區(qū)別在于加密輸入明文輸出密文而脫密輸入密文輸出明文,16個(gè)內(nèi)部密鑰加密的順序和解密的順序相反。d. 加密算法流程圖(1) 加密算法輸入64比特明文X,經(jīng)過(guò)16輪變換,輸出64比特密文Y (2) F函數(shù)Ri-1經(jīng)過(guò)E擴(kuò)展與K(i)異
9、或,通過(guò)S盒變換后進(jìn)行P置換得到32比特的輸出 (3) 子密鑰生成過(guò)程種子密鑰通過(guò)PC-1變換后,CiDi左移并經(jīng)過(guò)PC-2變換得到Ki (4) 程序結(jié)構(gòu)圖輸入字符設(shè)置密碼加密是否解密輸入密碼密碼正確解密密碼錯(cuò)誤程序結(jié)束是否重新輸入密碼3. 實(shí)驗(yàn)要求a. 輸入一串有意義的漢字,顯示密文和脫密結(jié)果;b. 設(shè)計(jì)用戶窗口;c. 實(shí)驗(yàn)環(huán)境說(shuō)明:操作系統(tǒng)、機(jī)型、語(yǔ)言。4. DES的實(shí)現(xiàn)a. 開(kāi)發(fā)環(huán)境主機(jī):Microsoft Windows XP Professional 版本2002 ServicePack3Intel(R) Core(TM)2 Duo CPU T6570 2.10GHz 2.09GHz
10、,1.99GB的內(nèi)存物理地址擴(kuò)展編程工具:Visual C+ 6.0 功能測(cè)試:如圖所示:相關(guān)函數(shù):void ByteToBit(bool *Out, const char *In, int bits);/字符轉(zhuǎn)換成字節(jié)void BitToByte(char *Out,const bool *In,int bits)/字節(jié)轉(zhuǎn)換成字符void RotateL(bool*In,int len,int loop)/循環(huán)左移void Xor(bool*InA,const bool*InB,int len)/異或void Transform(bool*Out,bool*In,const char*Tab
11、le,int len)/各個(gè)置換轉(zhuǎn)換void S_func(bool Out32,const bool In48)/將48位轉(zhuǎn)換成32位void F_func(bool In32,const bool Ki48)/F函數(shù)void SetKey(char key8)/生成子密鑰void CDES:Encryption(char out8,char In8)/加密函數(shù)void CDES:Decryption(char out8,char In8)/解密函數(shù)二、 DES的弱密鑰檢測(cè)1、什么是DES弱密鑰DES的解密過(guò)程,DES的解密過(guò)程和DES的加密過(guò)程完全類似,只不過(guò)將16圈的子密鑰序列K1,K2
12、K16的順序倒過(guò)來(lái)。即第一圈用第16個(gè)子密鑰K16,第二圈用K15,其余類推。如果K16K1,K15K2,K9K8,則加密所用的子密鑰與解密所用的子密鑰相同,對(duì)一個(gè)明文X加密兩次,得到的還是明文X。更強(qiáng)的,若K1K2K16,則加密過(guò)程與解密過(guò)程完全一樣。弱密鑰的定義也就是這樣定義:若k使得加密函數(shù)與解密函數(shù)一致,則稱k為弱密鑰。DES至少有4個(gè)弱密鑰,讓我們先來(lái)看看子密鑰的產(chǎn)生過(guò)程:64Bits的密鑰K經(jīng)PC-1之后,變?yōu)?6Bits,然后分為高28Bits和低28Bits,分別進(jìn)行移位。LSi是循環(huán)左移。PC-2是從56Bits中選出48Bits輸出。若C0和D0為全0或全1,則經(jīng)過(guò)移位后顯
13、然不變,于是16個(gè)子密鑰都相同。C0和D0是獨(dú)立進(jìn)行移位的,組合一下,就有4個(gè)弱密鑰了。因此至少有4個(gè)弱密鑰。(1)K1K160x0(2)K1K160xFFFFFFFFFFFF(3)K1K160xFFFFFF(4)K1K160xFFFFFF還可以注意到,第一組和第二組是互補(bǔ)的,第三組和第四組也是互補(bǔ)的。事實(shí)上,對(duì)于任意密鑰k,我們還有以下關(guān)系成立:(DES的互補(bǔ)性)若yDes(k,X),則yBarDES(kBar,XBar)。(后綴Bar表示取補(bǔ))2、檢測(cè)方法檢測(cè)16個(gè)內(nèi)部密鑰是否完全相同,若完全相同則判斷為弱密鑰,否則為正常密鑰3、檢測(cè)弱密鑰實(shí)現(xiàn)在DES程序中加入一個(gè)弱密鑰檢測(cè)函數(shù),通過(guò)檢測(cè)
14、其16個(gè)內(nèi)部密鑰是否相同,來(lái)判斷所輸入的密鑰是否為弱密鑰。所加入函數(shù)如下:bool CheckKey(char* key)SetKey(key);char A6,B6;for(int i=1,j=16;i=1;i+,j-) BitToByte(B,SubKeyi,48); BitToByte(A,SubKeyj,48);/若16個(gè)子密鑰完全相同,則為弱密鑰if (memcmp(void*)A,(void*)B,6) ) return 1;else return 0;4、實(shí)驗(yàn)過(guò)程(1)輸入密鑰,程序顯示為弱密鑰。(2)輸入密鑰3e96GR4J,檢測(cè)顯示為非弱密鑰。5、實(shí)驗(yàn)源代碼#include#
15、include using namespace std;const static char IP64 =/初始置換58, 50, 42, 34, 26, 18, 10, 2,60, 52, 44, 36, 28, 20, 12, 4,62, 54, 46, 38, 30, 22, 14, 6,64, 56, 48, 40, 32, 24, 16, 8,57, 49, 41, 33, 25, 17, 9, 1,59, 51, 43, 35, 27, 19, 11, 3,61, 53, 45, 37, 29, 21, 13, 5,63, 55, 47, 39, 31, 23, 15, 7;cons
16、t static char EP156 =/密鑰置換(原64位去掉奇偶校驗(yàn)位后)57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18,10, 2, 59, 51, 43, 35, 27,19, 11, 3, 60, 52, 44, 36,63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22,14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4;const static char LOOP16 =/左移 1, 1, 2, 2, 2, 2, 2
17、, 2, 1, 2, 2, 2, 2, 2, 2, 1;const static char EP248 =/選擇子密鑰14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,23, 19, 12, 4, 26, 8,16, 7, 27, 20, 13, 2,41, 52, 31, 37, 47, 55,30, 40, 51, 45, 33, 48,44, 49, 39, 56, 34, 53,46, 42, 50, 36, 29, 32;static const char EC48 =/放大換位 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8,
18、9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1;const static char SBox8416 =/8個(gè)S盒 / S1 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 , 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 , 4, 1, 14
19、, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 , 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 , / S2 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10 , 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5 , 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15 , 13, 8, 10, 1, 3, 15, 4, 2, 1
20、1, 6, 7, 12, 0, 5, 14, 9 , / S3 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8 , 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1 , 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7 , 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12 , / S4 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11,
21、12, 4, 15 , 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9 , 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4 , 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14 , / S5 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9 , 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 , 4, 2, 1,
22、 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14 , 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3 , / S6 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11 , 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8 , 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6 , 4, 3, 2, 12, 9, 5, 15, 10, 1
23、1, 14, 1, 7, 6, 0, 8, 13 , / S7 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 , 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6 , 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2 , 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12 , / S8 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5,
24、 0, 12, 7 , 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2 , 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8 , 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 ;const static char PP32 =/P盒置換16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26,5, 18, 31, 10, 2, 8, 24, 14,32, 27, 3, 9,19, 13, 3
25、0, 6,22, 11, 4, 25,;const static char LP64 =/末置換40, 8, 48, 16, 56, 24, 64, 32,39, 7, 47, 15, 55, 23, 63, 31,38, 6, 46, 14, 54, 22, 62, 30,37, 5, 45, 13, 53, 21, 61, 29,36, 4, 44, 12, 52, 20, 60, 28,35, 3, 43, 11, 51, 19, 59, 27,34, 2, 42, 10, 50, 18, 58, 26,33, 1, 41, 9, 49, 17, 57, 25;static bool M
26、64, tmp32, *Li = &M0, *Ri = &M32;static bool SubKey1648;/16個(gè)子密鑰class CDES/定義DES類 public: /void Mode();/模式 void Encryption(char out8,char In8);/加密函數(shù) void Decryption(char out8,char In8);/解密函數(shù);void ByteToBit(bool *Out, const char *In, int bits)/字符轉(zhuǎn)換成字節(jié) int i; for(i=0;i3(i&7) & 1; void BitToByte(char *O
27、ut,const bool *In,int bits)/字節(jié)轉(zhuǎn)換成字符 int i; memset(Out,0,(bits+7)/8); for(i=0;i3 |= Ini(i&7); void RotateL(bool*In,int len,int loop)/循環(huán)左移 static bool tmp256; memcpy(tmp,In,loop); memcpy(In,In+loop,len-loop); memcpy(In+len-loop,tmp,loop); void Xor(bool*InA,const bool*InB,int len)/異或 int i; for(i=0;ile
28、n;i+) InAi=InBi; void Transform(bool*Out,bool*In,const char*Table,int len)/各個(gè)置換轉(zhuǎn)換 int i; static bool tmp256; for(i=0;ilen;i+) tmpi=InTablei-1; memcpy(Out,tmp,len);void S_func(bool Out32,const bool In48)/將48位轉(zhuǎn)換成32位 int j,m,n; /膨脹后的比特串分為8組,每組6比特。 for(j=0;j8;j+,In+=6,Out+=4) m = (In0*2)+In5; n = (In1*8
29、)+(In2*4)+(In3*2)+In4; ByteToBit(Out,&SBoxjmn,4); void F_func(bool In32,const bool Ki48) static bool MR48; Transform(MR,In,EC,48); Xor(MR, Ki, 48); /膨脹后的比特串分為8組,每組6比特。各組經(jīng)過(guò)各自的S盒后,又變?yōu)?比特,合并后又成為32比特。 S_func(In, MR); /該32比特經(jīng)過(guò)P變換后,輸出的比特串才是32比特的f(Ri-1,Ki)。 Transform(In, In, PP, 32);void SetKey(char key8)/
30、生成子密鑰 int i; static bool K64, *KL = &K0, *KR = &K28; ByteToBit(K,key,64); /轉(zhuǎn)換為二進(jìn)制 Transform(K,K,EP1,56); /64比特的密鑰K,經(jīng)過(guò)EP1后,生成56比特的串。 /生成16個(gè)子密鑰 for(i=0;i16;i+) /循環(huán)左移,合并 RotateL(KL,28,LOOPi); RotateL(KR,28,LOOPi); Transform(SubKeyi,K,EP2,48); bool CheckKey(char* key)SetKey(key);char A6,B6;for(int i=1,j
31、=16;i=1;i+,j-) BitToByte(B,SubKeyi,48); BitToByte(A,SubKeyj,48);/若16個(gè)子密鑰完全相同,則為弱密鑰if (memcmp(void*)A,(void*)B,6) ) return 1;else return 0;void CDES:Encryption(char out8,char In8)/加密函數(shù) ByteToBit(M,In,64); /轉(zhuǎn)換為二進(jìn)制 Transform(M,M,IP,64); for(int i=0;i=0;i-) memcpy(tmp,Li,32); F_func(Li,SubKeyi); Xor(Li,
32、Ri,32); memcpy(Ri,tmp,32); Transform(M, M, LP, 64); BitToByte(out, M, 64); / return(out);void main() int c; char key10;char str128;char str1128;coutstr;coutkey; c=CheckKey(key);if(c) printf(非弱密鑰n);else printf(弱密鑰n);SetKey(key);memset(str1,0,sizeof(str1);CDES des;des.Encryption(str1,str);cout密文:str1e
33、ndl;coutn;if(n=1)while(1)coutsec;if(strcmp(sec,key)=0)memset(str,0,sizeof(str); des.Decryption(str,str1); cout解密后明文:strendl;break; elsecout密碼錯(cuò)誤!endl;elsecout過(guò)程結(jié)束!endl;三、RSA的快速實(shí)現(xiàn)一、實(shí)驗(yàn)原理1、選取長(zhǎng)度相等的兩個(gè)大素?cái)?shù)p 和q,計(jì)算其乘積:n = pq然后隨機(jī)選取加密密鑰e,使e 和(p1)(q1)互素。最后用歐幾里德擴(kuò)展算法計(jì)算解密密鑰d,以滿足ed = 1(mod(p1) ( q1)即d = e1 mod(p1)(q1)e 和n 是公鑰,d 是私鑰2、加密公式如下:ci = mie(mod n)3、解密時(shí),取每一密文分組ci 并計(jì)算:mi = cid(mod n)Cid =(mie)d = mi(ed) = mik(p1)(q1)+1 = mi mik(p1)(q1) = mi *1 = mi4、消息也可以用d 加密用e 解密二、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)RSA加密算法的實(shí)現(xiàn),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年甲乙雙方關(guān)于門(mén)面租房的合同協(xié)議書(shū)
- 2024年環(huán)保型農(nóng)藥研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 2024版政府吸引外資項(xiàng)目協(xié)議范本版B版
- 2024廣告代理發(fā)布協(xié)議
- 2025年度出差人員交通與住宿統(tǒng)一管理服務(wù)合同3篇
- 2025年度ISO 13485醫(yī)療器械質(zhì)量管理體系認(rèn)證服務(wù)合同3篇
- 2024年項(xiàng)目停工責(zé)任分配合同范本
- 2024年技術(shù)開(kāi)發(fā)合作協(xié)議(附專利權(quán)歸屬條款)
- 2024年環(huán)保污水處理設(shè)施工程承包協(xié)議版B版
- 2024年項(xiàng)目勞務(wù)分包簡(jiǎn)易合同
- 常用靜脈藥物溶媒的選擇
- 當(dāng)代西方文學(xué)理論知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋武漢科技大學(xué)
- 2024年預(yù)制混凝土制品購(gòu)銷(xiāo)協(xié)議3篇
- 2024年中國(guó)陶瓷碗盆市場(chǎng)調(diào)查研究報(bào)告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之22:“8運(yùn)行-8.1運(yùn)行策劃和控制”(雷澤佳編制-2025B0)
- 單位網(wǎng)絡(luò)安全攻防演練
- 新交際英語(yǔ)(2024)一年級(jí)上冊(cè)Unit 1~6全冊(cè)教案
- 神經(jīng)外科基礎(chǔ)護(hù)理課件
- 2024年中國(guó)心力衰竭診斷和治療指南2024版
- HCCDP 云遷移認(rèn)證理論題庫(kù)
- 工程結(jié)算單(樣本)
評(píng)論
0/150
提交評(píng)論