版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)絡(luò)安全課 程 設(shè) 計(jì) 報(bào) 告學(xué) 院:計(jì)算機(jī)與電子信息學(xué)院專業(yè)名稱: 學(xué) 號(hào):姓 名:指導(dǎo)教師:時(shí) 間:2015年1月DES源代碼分析一、DES對(duì)稱加密算法簡(jiǎn)介最著名的保密密鑰或?qū)ΨQ密鑰加密算法DES(Data Encryption Standard)是由IBM公司在70年代發(fā)展起來的,并經(jīng)過政府的加密標(biāo)準(zhǔn)篩選后,于1976年11月被美國政府采用,DES隨后被美國國家標(biāo)準(zhǔn)局和美國國家標(biāo)準(zhǔn)協(xié)會(huì)(American National Standard Institute, ANSI) 承認(rèn)。DES使用56位密鑰對(duì)64位的數(shù)據(jù)塊進(jìn)行加密,并對(duì)64位的數(shù)據(jù)塊進(jìn)行16輪編碼。與每輪編碼時(shí),一個(gè)48位的“每
2、輪”密鑰值由56位的完整密鑰得出來。DES用軟件進(jìn)行解碼需要用很長(zhǎng)時(shí)間,而用硬件解碼速度非???,但幸運(yùn)的是當(dāng)時(shí)大多數(shù)黑客并沒有足夠的設(shè)備制造出這種硬件設(shè)備。在1977年,人們估計(jì)要耗資兩千萬美元才能建成一個(gè)專門計(jì)算機(jī)用于DES的解密,而且需要12個(gè)小時(shí)的破解才能得到結(jié)果。所以,當(dāng)時(shí)DES被認(rèn)為是一種十分強(qiáng)壯的加密方法。二、DES對(duì)稱加密算法分析(1)DES算法原理在DES算法中有Data、Key、Mode三個(gè)參數(shù)。其中Data代表需要加密或解密的數(shù)據(jù),由8字節(jié)64位組成;Key代表加密或解密的密鑰,也由8字節(jié)64位組成;Mode代表加密或解密的狀態(tài)。在DES算法中加密和解密的原理是一樣的,只是
3、因?yàn)镸ode的狀態(tài)不同,適用密鑰的順序不同而已。(2)DES算法的加密過程 DES算法的加密過程如圖6.2所示。初始置換(Initial Permutation,IP)是對(duì)輸入的64位數(shù)據(jù)按照規(guī)定的矩陣改變數(shù)據(jù)位的排列順序的換位變換,此過程與密鑰無關(guān)。子密鑰生成是由64位外部輸入密鑰通過置換和移位操作生成加密和解密所需的16組(每組56位)子密鑰的過程。乘積變換過程非常復(fù)雜,是加密過程的關(guān)鍵。該過程通過16輪重復(fù)的替代、移位、異或和置換操作打亂原輸入數(shù)據(jù)。逆初始置換(IP-1)與初始置換過程相同,只是置換矩陣是初始置換的逆矩陣。 初始置換(IP)將64位明文按照初始置換表(如表6.1)的規(guī)則進(jìn)
4、行置換。其置換過程為:將輸入明文的第58位置換到第1位,第50位置換到第2位,第12位置換到第3位,依此類推,最后第7位置換到第64位。 子密鑰生成輸入的密鑰K是64位數(shù)據(jù),但其中第8、16、24、32、40、48、56、64位用于奇偶校驗(yàn),實(shí)際使用的密鑰位只有56位。子密鑰Ki的生成流程如圖6.3所示。第1步:PC1變換。將56位密鑰按置換選擇1(PC-1)的規(guī)律(見表6.2)進(jìn)行置換,變換后分為左右兩路(C0、D0)各28位。第2步:數(shù)據(jù)左移。將兩個(gè)28位的C0和D0按表6.3的規(guī)則進(jìn)行循環(huán)左移。表6.3中第1行表示迭代輪次,第2行表示左移的位數(shù)。左移的規(guī)律是將C0和D0所有的位按表中規(guī)定
5、的位數(shù)循環(huán)左移。第3步:PC2變換和子密鑰生成。C0和D0左移1位后得到C1和D1 ,再將C1和D1數(shù)據(jù)組合后(56位)按照PC2變換的要求變換得到48位的子密鑰K1,在進(jìn)行第1輪迭代時(shí)使用K1;同理,將C1和D1左移1位得到C2和D2,再將C2和D2數(shù)據(jù)組合后按照PC2變換的要求變換得到48位的子密鑰K2;依此類推,就可以得到K3、K4.K16。PC2變換如表6.4所示。PC2變換是將輸入的56位數(shù)據(jù)變換為48位輸出,該變換是一種壓縮變換。根據(jù)不同輪數(shù)分別進(jìn)行左移和壓縮變換,分別得到16個(gè)48位的子密鑰K1, K2, K16。 乘積變換初始置換后的數(shù)據(jù)分為各32位的兩部分,左部分為L(zhǎng)0,右部
6、分為R0,這樣,L0 = D58D50D12.D8,R0 = D57D49D41D7。乘積變換過程就是將L0和R0按照乘積變換運(yùn)算公式進(jìn)行迭代運(yùn)算,最后得出L16和R16。如圖6.4所示。第1步:E變換。E變換是一個(gè)擴(kuò)展變換,其過程是將32位的數(shù)據(jù)Ri-1變換成48位,變換規(guī)則如表6.5所示。第2步:異或變換。將E變換輸出的48位數(shù)據(jù)與48位的子密鑰Ki進(jìn)行異或運(yùn)算,得到48位的S盒數(shù)據(jù)。第3步:S盒變換。將48位的S盒數(shù)據(jù)均分為8部分,每部分為6位,用8個(gè)S盒S1S8表示。每個(gè)S盒的輸入為6位,變換后輸出為4位,即經(jīng)過8個(gè)S盒S1S8變換后輸出為32位,如圖6.5所示。S盒的變換規(guī)則:以S1
7、盒為例,將6位輸入數(shù)據(jù)(a1a2a3a4a5a6)的中間4位(a2a3a4a5)對(duì)應(yīng)的數(shù)值作為列,兩端的2位(a1a6) 對(duì)應(yīng)的數(shù)值作為行,找到如表6.6所示的S1轉(zhuǎn)換表中相應(yīng)的位,得到的數(shù)值再轉(zhuǎn)換成二進(jìn)制形式的4位數(shù)據(jù),此即為S1盒的輸出。第4步:P變換。P變換的過程是將S盒輸出的32位數(shù)據(jù)進(jìn)行位置變換得到一個(gè)新的32數(shù)據(jù)組,因此P變換為線性變換,其變換規(guī)則如表6.14所示。第5步:異或變換。P變換輸出的32位數(shù)據(jù)與32位的Li-1異或后輸出32位數(shù)據(jù),此數(shù)據(jù)就是Ri。當(dāng)i15時(shí),Ri與Li各32位數(shù)據(jù)將被用來進(jìn)行下一輪迭代變換。 逆初始置換(IP-1)將第16輪迭代變換的輸出R16與L16
8、組合在一起構(gòu)成64位數(shù)據(jù)組,作為逆初始置換(IP-1)的輸入。逆初始置換的變換規(guī)則如表6.15所示,置換完成后的數(shù)據(jù)即為64位密文。(3) DES算法的解密過程DES的解密算法與加密算法相同,解密密鑰也與加密密鑰相同,區(qū)別僅在于進(jìn)行16輪迭代運(yùn)算時(shí)使用的子密鑰順序與加密時(shí)是相反的,即第1輪用子密鑰K16、第2輪用K15、,最后一輪用子密鑰K1。(4)DES算法的安全性DES是世界上使用最為廣泛和流行的一種分組密碼算法,被公認(rèn)為世界上第一個(gè)實(shí)用的密碼算法標(biāo)準(zhǔn)。DES的缺點(diǎn)是密鑰位數(shù)太短(56位),而且算法是對(duì)稱的,使得這些密鑰中還存在一些弱密鑰和半弱密鑰,因此容易被采用窮盡密鑰方法解密由于DES
9、算法完全公開,其安全性完全依賴于對(duì)密鑰的保護(hù),必須有可靠的信道來分發(fā)密鑰。三、DES對(duì)稱加密算法的實(shí)現(xiàn)1、C語言實(shí)現(xiàn)DES對(duì)稱加密算法過程分析(1)初始置換/根據(jù)表格改變順序void ChangeOrder (bit *origbin, bit *newbin, int *table, int num)int i;bit temp64;for (i = 0; i < num; i+)tempi = origbintablei - 1;CopyBin(temp, newbin, num);(2)子密鑰生成void SetKeys(bit *origkey, bit keys48)int i
10、;bit key6464, key4848, key5656, lkey28, rkey28;CopyBin(origkey, key64, 64);ChangeOrder (key64, key56, PC1, 56);/printf("PC1變換后的key:n"); PrintBin (key56, 56, 7);for (i = 0; i < 16; i+)/PrintBin (key56, 56, 14);SplitData(key56, lkey, rkey, 56);LoopMove (lkey, MOVEi);LoopMove (rkey, MOVEi)
11、;/printf("C%d:n", i); PrintBin (lkey, 28, 7);/printf("D%d:n", i); PrintBin (rkey, 28, 7);MergeData(key56, lkey, rkey, 56);/printf("C%d D%d:n", i, i); PrintBin (key56, 56, 14);ChangeOrder (key56, key48, PC2, 48);CopyBin(key48, keysi, 48);/printf("%d個(gè)密鑰:n", i +
12、1); PrintBin (keysi, 48, 12);(3)異或運(yùn)算void Xor(bit *date1, bit *data2, int num)int i;for (i = 0; i < num; i+)data2i = date1i;(4)密鑰左移及S盒變換void LoopMove (bit *key, int num)bit temp28;CopyBin(&keynum, temp, 28-num);CopyBin(key, &temp28-num, num);CopyBin(temp, key, 28);void SChange(bit *data48,
13、 bit *data32)int i;bit r2, c4;char er, ec;for (i = 0; i < 8; i+)int j = i * 6;CopyBin(&data48j, r, 1);CopyBin(&data48j + 5, &r1, 1);CopyBin(&data48j + 1, c, 4);BinToDec(r, &er, 2);BinToDec(c, &ec, 4);DecToBin(Sierec, &data32i * 4, 4);(5)DES對(duì)稱加密算法加密解密/DES加密、解密void DES(c
14、har *mykey, char *origdata, char *newdata, int type)int len, i, j;bit data64;/保存二進(jìn)制的數(shù)據(jù)bit key64;/保存二進(jìn)制密鑰bit keys1648;/保持子密鑰StrToBin (mykey, key, 64);/printf("初始密碼:n"); PrintBin (key, 64, 8);SetKeys(key, keys);len = strlen(origdata);for (i = 0, j = len; j >= 8; i+, j -= 8)StrToBin (&
15、origdatai * 8, data, 64);DESBlock(keys, data, type);BinToDec(data, &newdatai * 8, 64);/不滿8字節(jié)用0填充if (j)memset(data, 0, 64);StrToBin (&origdatai * 8, data, j * 8);DESBlock(keys, data, type);BinToDec(data, &newdatai * 8, 64);memset(&newdatalen % 8 = 0 ? len : (len + 8 - len % 8), 0, 1);
16、(4)運(yùn)行截圖加密解密2、手工計(jì)算DES對(duì)稱加密算法過程分析明文:1107300420林志祥密鑰:19920324(1)初始置換(IP)原數(shù)據(jù):丨 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 丨丨 1 1 0 1 1 1 1 0 1 1 0 0 1 0 0 0 丨丨 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 0 丨丨 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 丨IP置換后的數(shù)據(jù):丨 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 丨丨 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 丨丨 0 0 1 1
17、 1 1 1 1 1 1 1 0 0 0 0 1 丨丨 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 丨(2)子密鑰生成1)根據(jù)PC1變換原密鑰:丨 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 丨丨 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 丨丨 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 丨丨 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 丨PC1變換后的密鑰:丨 0 0 0 0 0 0 0 0 0 0 0 0 0 0 丨丨 0 0 1 1 1 1 1 1 1 1 1 1 1 1 丨丨 0 1
18、1 0 0 1 1 0 0 1 1 1 1 0 丨丨 0 0 1 0 0 0 0 0 0 0 1 1 1 1 丨2)PC2變換和子密鑰生成C1和D1:丨 0 0 0 0 0 0 0 丨丨 1 1 0 0 1 1 0 丨丨 0 0 0 0 0 0 0 丨丨 0 1 1 1 1 0 0 丨丨 0 1 1 1 1 1 1 丨丨 0 1 0 0 0 0 0 丨丨 1 1 1 1 1 1 0 丨丨 0 0 1 1 1 1 0 丨K1:丨 0 1 0 1 0 0 0 0 0 0 1 0 丨丨 1 1 0 0 1 0 1 0 1 1 0 0 丨丨 0 1 0 1 0 1 1 1 0 0 1 0 丨丨 1 0
19、 1 0 1 1 0 0 0 0 1 0 丨C2和D2:丨 0 0 0 0 0 0 0 丨丨 1 0 0 1 1 0 0 丨丨 0 0 0 0 0 0 0 丨丨 1 1 1 1 0 0 0 丨丨 1 1 1 1 1 1 1 丨丨 1 0 0 0 0 0 0 丨丨 1 1 1 1 1 0 0 丨丨 0 1 1 1 1 0 1 丨K15:丨 0 0 0 1 1 0 0 1 0 0 1 0 丨丨 1 1 0 0 1 0 0 0 1 1 0 0 丨丨 1 0 1 0 0 1 0 1 0 0 0 0 丨丨 0 0 1 1 0 0 1 1 0 1 1 1 丨C16和D16:丨 0 0 0 0 0 0 0
20、丨丨 0 1 1 0 0 1 1 丨丨 0 0 0 0 0 0 0 丨丨 0 0 1 1 1 1 0 丨丨 0 0 1 1 1 1 1 丨丨 0 0 1 0 0 0 0 丨丨 1 1 1 1 1 1 1 丨丨 0 0 0 1 1 1 1 丨K16:丨 0 1 0 1 0 0 0 1 0 0 1 0 丨丨 1 1 0 0 1 0 0 0 1 1 0 0 丨丨 1 0 1 0 0 1 1 1 0 1 0 0 丨丨 0 0 1 1 1 1 0 0 0 0 0 0 丨(3)乘積變換1)E變換L0和R0:丨 0 0 1 1 1 1 1 0 丨丨 0 0 1 1 1 1 1 1 丨丨 1 1 1 1 0
21、1 0 1 丨丨 1 1 1 0 0 0 0 1 丨丨 0 0 0 1 0 1 0 0 丨丨 0 0 0 0 1 1 0 0 丨丨 1 1 0 1 0 0 0 1 丨丨 0 0 1 0 0 1 1 1 丨E變換后的右半部分?jǐn)?shù)據(jù)和密鑰K1:丨 1 0 0 1 1 1 1 1 1 1 1 1 丨丨 0 1 0 1 0 0 0 0 0 0 1 0 丨丨 1 1 1 1 0 0 0 0 0 0 1 0 丨丨 1 1 0 0 1 0 1 0 1 1 0 0 丨丨 1 0 0 0 0 1 0 1 1 0 0 0 丨丨 0 1 0 1 0 1 1 1 0 0 1 0 丨丨 0 0 0 1 0 0 0 0 1
22、 1 1 0 丨丨 1 0 1 0 1 1 0 0 0 0 1 0 丨2)異或變換1及S盒變換兩者進(jìn)行異或運(yùn)算得:丨 1 1 0 0 1 1 1 1 1 1 0 1 丨丨 0 0 1 1 1 0 1 0 1 1 1 0 丨丨 1 1 0 1 0 0 1 0 1 0 1 0 丨丨 1 0 1 1 1 1 0 0 1 1 0 0 丨S盒獲得的數(shù)值:11 14 5 13 12 8 7 11 S盒變換后的右半部分?jǐn)?shù)據(jù):丨 1 0 1 1 1 1 1 0 丨丨 0 1 0 1 1 1 0 1 丨丨 1 1 0 0 1 0 0 0 丨丨 0 1 1 1 1 0 1 1 丨3)P變換P變換后的右半部分?jǐn)?shù)據(jù)和
23、左半部分的數(shù)據(jù):丨 1 1 0 1 1 1 1 1 丨丨 0 0 1 1 1 1 1 0 丨丨 1 0 0 1 1 1 1 1 丨丨 1 1 1 1 0 1 0 1 丨丨 0 0 0 1 1 1 1 0 丨丨 0 0 0 1 0 1 0 0 丨丨 0 1 0 1 0 0 1 0 丨丨 1 1 0 1 0 0 0 1 丨4)異或變換2兩者異或運(yùn)算得:丨 1 1 1 0 0 0 0 1 丨丨 0 1 1 0 1 0 1 0 丨丨 0 0 0 0 1 0 1 0 丨丨 1 0 0 0 0 0 1 1 丨L1和R1:丨 0 0 1 1 1 1 1 1 丨丨 1 1 1 0 0 0 0 1 丨丨 1 1
24、 1 0 0 0 0 1 丨丨 0 1 1 0 1 0 1 0 丨丨 0 0 0 0 1 1 0 0 丨丨 0 0 0 0 1 0 1 0 丨丨 0 0 1 0 0 1 1 1 丨丨 1 0 0 0 0 0 1 1 丨兩者異或運(yùn)算得:丨 1 1 0 0 1 0 0 1 丨丨 1 0 0 0 0 0 0 0 丨丨 1 0 0 1 0 1 0 1 丨丨 0 1 1 0 1 1 1 0 丨L16和R16:丨 1 1 0 1 1 1 1 1 丨丨 1 1 0 0 1 0 0 1 丨丨 1 1 1 0 1 0 1 1 丨丨 1 0 0 0 0 0 0 0 丨丨 1 0 1 0 0 1 0 0 丨丨 1
25、0 0 1 0 1 0 1 丨丨 1 1 1 0 0 1 0 0 丨丨 0 1 1 0 1 1 1 0 丨乘積變換后的數(shù)據(jù):丨 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 丨丨 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 丨丨 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 丨丨 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 丨(4)初始置換逆初始置換表后的數(shù)據(jù):丨 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 丨丨 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 丨丨 1 0 0 0
26、0 1 0 0 0 0 1 0 1 0 1 1 丨丨 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 丨DES對(duì)稱加密算法解密算法與加密算法相同,同上可解密。三、總結(jié)DES算法是明文分組為64位,有效密鑰56位,輸出密文64位的,具有16輪迭代的分組對(duì)稱密碼算法。通過學(xué)習(xí)此算法,了解到了許多函數(shù),其中有密鑰生成函數(shù),加密函數(shù),解密函數(shù),測(cè)試函數(shù)以及密鑰長(zhǎng)度檢驗(yàn)函數(shù)等。四、源代碼附:#include<stdio.h>#include<stdlib.h>#include<string.h>#include "table.h"#
27、define bitbool#define MAX_SIZE1000#define ENCRYPT0#define DECODE1void StrToBin(char *str, bit *bin, int num)int i;for (i = 0; i < num; i+)bini = (stri / 8 >> (7 - i % 8) & 1;void DecToBin(int dec, bit *bin, int num)int i;for (i = 0; num > 0; i+, num-)bini = dec >> (num - 1) &am
28、p; 1;void BinToDec(bit *bin, char *dec, int num)int count, res, i;for(count = 0; num > 0; count+, num -= 8)deccount = 0;res = num < 8 ? num : 8;for (i = res; i > 0 ; i-)deccount |= bincount * 8 + res - i << (i - 1);void CopyBin(bit *origbin, bit *newbin, int num)int i;for (i = 0; i &l
29、t; num; i+)newbini = origbini;void PrintBin (bit *bin, int num, int count)int i;for (i = 0; i < num; i+)if(i % count = 0) printf("丨 ");printf("%-2d", bini);if(i + 1) % count = 0) printf("丨n");printf("n");void PrintInfo (int num ,bit *ldata, bit *rdata, bit
30、*subkey)int i, j;printf(" L%d:ttt R%d:ttt K%d:n", num, num, num);for (i = 0; i < 4; i+)printf ("丨 ");for (j = 0; j < 8; j+)printf("%-2d", ldatai * 8 + j);printf("丨t丨 ");for (j = 0; j < 8; j+)printf("%-2d", rdatai * 8 + j);printf("丨t丨 &q
31、uot;);for (j = 0; j < 12; j+)printf("%-2d", subkeyi * 12 + j);printf("丨n");printf("n");void ChangeOrder (bit *origbin, bit *newbin, int *table, int num)int i;bit temp64;for (i = 0; i < num; i+)tempi = origbintablei - 1;CopyBin(temp, newbin, num);void SplitData (bi
32、t *data, bit *ldata, bit *rdata, int num)CopyBin(data, ldata, num / 2);CopyBin(&datanum / 2, rdata, num / 2);void MergeData(bit *data, bit *ldata, bit *rdata, int num)CopyBin(ldata, data, num / 2);CopyBin(rdata, &datanum / 2, num / 2);void Xor(bit *date1, bit *data2, int num)int i;for (i = 0
33、; i < num; i+)data2i = date1i;void LoopMove (bit *key, int num)bit temp28;CopyBin(&keynum, temp, 28-num);CopyBin(key, &temp28-num, num);CopyBin(temp, key, 28);void SChange(bit *data48, bit *data32)int i;bit r2, c4;char er, ec;for (i = 0; i < 8; i+)int j = i * 6;CopyBin(&data48j, r,
34、 1);CopyBin(&data48j + 5, &r1, 1);CopyBin(&data48j + 1, c, 4);BinToDec(r, &er, 2);BinToDec(c, &ec, 4);DecToBin(Sierec, &data32i * 4, 4);void SetKeys(bit *origkey, bit keys48)int i;bit key6464, key4848, key5656, lkey28, rkey28;CopyBin(origkey, key64, 64);ChangeOrder (key64, ke
35、y56, PC1, 56);for (i = 0; i < 16; i+)SplitData(key56, lkey, rkey, 56);LoopMove (lkey, MOVEi);LoopMove (rkey, MOVEi);MergeData(key56, lkey, rkey, 56);ChangeOrder (key56, key48, PC2, 48);CopyBin(key48, keysi, 48);void DESBlock (bit keys48, bit *data, int type)int i;bit ldata32, rdata32, data4848, d
36、ata3232;SplitData(data, ldata, rdata, 64);for (i = 0; i < 16; i+)CopyBin (rdata, data32, 32);ChangeOrder (rdata, data48, E, 48);if (type = ENCRYPT) Xor (keysi, data48, 48);else Xor (keys15 - i, data48, 48);SChange (data48, rdata);ChangeOrder (rdata, rdata, P, 32);Xor (ldata, rdata, 32);CopyBin (data32, ldata, 32);MergeData(data, rdata, ldata, 64);ChangeOrder(data, data, FP, 64);PrintBin (data, 64, 8);void DES(char *mykey, char *origdata, char *newdata, int type)int len, i, j;bi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省十校聯(lián)考2026屆高三上學(xué)期1月期末階段性作業(yè)語文試卷(含答案)
- 鋼結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)體系建設(shè)
- 2026石嘴山市大武口區(qū)審計(jì)局聘請(qǐng)2名專業(yè)人員輔助審計(jì)工作參考考試題庫及答案解析
- 2026山東事業(yè)單位統(tǒng)考昌邑市招聘58人備考考試題庫及答案解析
- 龍山龍蝦活動(dòng)策劃方案(3篇)
- 建筑公司門衛(wèi)房管理制度(3篇)
- 山地水管施工方案(3篇)
- 修復(fù)道路施工方案(3篇)
- 2026北京大學(xué)對(duì)外漢語教育學(xué)院招聘全職博士后研究人員備考考試題庫及答案解析
- 2026貴州貴陽市觀山湖區(qū)第二幼兒園第二分園招聘3人考試備考題庫及答案解析
- GB/T 5576-2025橡膠和膠乳命名法
- 【語文】荊州市小學(xué)三年級(jí)上冊(cè)期末試卷(含答案)
- 壓瘡及失禁性皮炎護(hù)理
- 2025年辦公室行政人員招聘考試試題及答案
- 鐵路運(yùn)輸安全管理體系建設(shè)方案
- 工程機(jī)械定義及類組劃分
- 2024臨床化學(xué)檢驗(yàn)血液標(biāo)本的采集與處理
- 學(xué)堂在線 雨課堂 學(xué)堂云 高技術(shù)與現(xiàn)代局部戰(zhàn)爭(zhēng) 章節(jié)測(cè)試答案
- 軟件企業(yè)軟件版本控制規(guī)范
- 2025年《商務(wù)接待與談判》課程標(biāo)準(zhǔn)
- JG/T 374-2012建筑用開窗機(jī)
評(píng)論
0/150
提交評(píng)論