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

下載本文檔

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

文檔簡(jiǎn)介

1、 成績(jī): 2016-2017學(xué)年第1學(xué)期密碼學(xué)原理課程設(shè)計(jì)題目:基于三重DES的文件加密解密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 學(xué)院名稱(chēng): 班級(jí)學(xué)號(hào): 學(xué)生姓名: 教師姓名: 2016年 12 月 一、設(shè)計(jì)要求學(xué)生在進(jìn)行課程設(shè)計(jì)時(shí)應(yīng)該滿(mǎn)足以下具體要求:Ø 要求在設(shè)計(jì)的過(guò)程中,建立清晰的模塊;Ø 設(shè)計(jì)良好的交互界面,如要求用戶(hù)輸入密鑰、明文字符串、得到相應(yīng)的解密字符串等;Ø 高級(jí)要求:加密、解密中文、用到的數(shù)據(jù)如明文、密文全部采用文件形式存儲(chǔ)。(可選)二、開(kāi)發(fā)環(huán)境與工具開(kāi)發(fā)環(huán)境:Windows平臺(tái)開(kāi)發(fā)工具:Visual Studio 2013三、設(shè)計(jì)原理(算法工作原理)l DES全稱(chēng)為

2、Data Encryption Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法。l DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中Key為7個(gè)字節(jié)共56位,是DES算法的工作密鑰;Data為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。l DES設(shè)計(jì)中使用了分組密碼設(shè)計(jì)的兩個(gè)原則:混淆(confusion)和擴(kuò)散(diffusion),其目的是抗擊敵手對(duì)密碼系統(tǒng)的統(tǒng)計(jì)分析?;煜鞘姑芪牡慕y(tǒng)計(jì)特性與密鑰的取值之間的關(guān)系盡可能復(fù)雜化,以使密鑰和明文以及密文之間的依賴(lài)性對(duì)密碼分析者來(lái)說(shuō)是無(wú)法利用的。擴(kuò)散的作用就是將每一位明文的影

3、響盡可能迅速地作用到較多的輸出密文位中,以便在大量的密文中消除明文的統(tǒng)計(jì)結(jié)構(gòu),并且使每一位密鑰的影響盡可能迅速地?cái)U(kuò)展到較多的密文位中,以防對(duì)密鑰進(jìn)行逐段破譯。l DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位(實(shí)際用到了56位,第8、16、24、32、40、48、56、64位是校驗(yàn)位, 使得每個(gè)密鑰都有奇數(shù)個(gè)1)。 DES算法流程 l 其算法主要分為兩步:1)初始置換其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)32位,其置換規(guī)則為將輸入的第58位換到第一位,第50位換到第2位依此類(lèi)推,最后一位是原來(lái)的第7位。L0、R0則是換

4、位輸出后的兩部分,L0是輸出的左32位,R0是右32位,例:設(shè)置換前的輸入值為D1D2D3D64,則經(jīng)過(guò)初始置換后的結(jié)果為:L0=D58D50D8;R0=D57D49D7。其置換規(guī)則見(jiàn)下表: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,2)逆置換經(jīng)過(guò)16次迭代運(yùn)算后,得到L16、

5、R16,將此作為輸入,進(jìn)行逆置換,逆置換正好是初始置換的逆運(yùn)算,由此即得到密文輸出。此算法是對(duì)稱(chēng)加密算法體系中的代表,在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中廣泛使用。Ø 3DES(即Triple DES)是DES向AES過(guò)渡的加密算法,它使用3條56位的密鑰對(duì)數(shù)據(jù)進(jìn)行三次加密。是DES的一個(gè)更安全的變形。它以DES為基本模塊,通過(guò)組合分組方法設(shè)計(jì)出分組加密算法。比起最初的DES,3DES更為安全。Ø 該方法使用兩個(gè)密鑰,執(zhí)行三次DES算法,加密的過(guò)程是加密-解密-加密,解密的過(guò)程是解密-加密-解密。3DES加密過(guò)程為:C=Ek3(Dk2(Ek1(P) 3DES解密過(guò)程為:P=Dk1(EK2(D

6、k3(C)Ø 采用兩個(gè)密鑰進(jìn)行三重加密的好處有:兩個(gè)密鑰合起來(lái)有效密鑰長(zhǎng)度有112bit,可以滿(mǎn)足商業(yè)應(yīng)用的需要,若采用總長(zhǎng)為 168bit的三個(gè)密鑰,會(huì)產(chǎn)生不必要的開(kāi)銷(xiāo)。加密時(shí)采用加密-解密-加密,而不是加密-加密-加密的形式,這樣有效的實(shí)現(xiàn)了與現(xiàn) 有DES系統(tǒng)的向后兼容問(wèn)題。因?yàn)楫?dāng)K1=K2時(shí),三重DES的效果就和原來(lái)的DES一 樣,有助于逐漸推廣三重DES。三重DES具有足夠的安全性,目前還沒(méi)有關(guān)于攻破3DES的報(bào)道。四、系統(tǒng)功能描述與軟件模塊劃分/十進(jìn)制-十六進(jìn)制對(duì)照表const static char Hex_Table = 0, 1, 2, 3, 4, 5, 6, 7,

7、8, 9,'A', 'B', 'C', 'D', 'E', 'F'/十六進(jìn)制-二進(jìn)制對(duì)照表const static char Bit_Table164 = 0, 0, 0, 0 , 0, 0, 0, 1 , 0, 0, 1, 0 , 0, 0, 1, 1 , 0, 1, 0, 0 , 0, 1, 0, 1 , 0, 1, 1, 0 , 0, 1, 1, 1 , 1, 0, 0, 0 , 1, 0, 0, 1 , 1, 0, 1, 0 , 1, 0, 1, 1 , 1, 1, 0, 0 , 1, 1,

8、 0, 1 , 1, 1, 1, 0 , 1, 1, 1, 1 ;/置換選擇I表const static char KeyRar_Table = 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;/置換選擇II表const stati

9、c char Rar_Table = 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;/初始置換IP表const static char IP_Table = 58, 50, 42, 34, 26, 18, 10, 2,60, 52, 44, 36, 28, 20, 12, 4,62, 54,

10、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;/擴(kuò)展函數(shù)E表const static char Exp_Table = 32, 1, 2, 3, 4, 5,4, 5, 6, 7, 8, 9,8, 9, 10, 11, 12, 13,12, 13, 14, 15, 16, 17,16, 17, 18, 1

11、9, 20, 21,20, 21, 22, 23, 24, 25,24, 25, 26, 27, 28, 29,28, 29, 30, 31, 32, 1;/置換運(yùn)算P表const static char P_Table = 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, 30, 6,22, 11, 4, 25;/逆初始置換P_1表const static char P_1_Table = 40, 8, 48, 16, 56, 24, 64, 32,39, 7,

12、 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;/S盒const static char S_Box864 = /* S1 */ 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7,0,

13、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,

14、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, 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

15、,/* 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, 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,

16、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,

17、1, 13, 11, 6,4, 3, 2, 12, 9, 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

18、, 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, 15, 3, 5, 8,2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 ;#include"table.h"char CipherText200;char K56; /置換選擇I后的密鑰比特流char Round_Key1648;

19、/輪密鑰,最后一位為結(jié)束符char Li32, Ri32; /明文比特流左32位和右32位char E49; /選擇運(yùn)算E后比特流char S32; /保存經(jīng)過(guò)S盒后的輸出/字符串轉(zhuǎn)換比特流函數(shù)/Input保存用戶(hù)輸入的字符數(shù)組,Bit保存用戶(hù)輸入的比特流void CharToBit(char* Input, char* Bit)int length = 0, j = 0, k = 0;char Hex30; /保存十六進(jìn)制for (int i = 0; Inputi != '0' i+)int temp = (int)Inputi;if (temp / 16)int temp

20、1 = (int)Hex_Tabletemp / 16;Hexj+ = temp1 + 48;if (temp % 16 < 10)temp1 = (int)Hex_Tabletemp % 16;Hexj+ = temp1 + 48;elseHexj+ = Hex_Tabletemp % 16;elseHexj+ = (char)48;if (temp % 16 < 10)int temp1 = (int)Hex_Tabletemp % 16;Hexj+ = temp1 + 48;elseHexj+ = Hex_Tabletemp % 16;for (int i = 0; i &l

21、t; j; i+)if (Hexi >= '0'&&Hexi <= '9')for (int m = 0; m < 4; m+)Bitk+ = (int)Bit_TableHexi - 48m + 48;else if (Hexi >= 'A'&&Hexi <= 'F')for (int m = 0; m < 4; m+)Bitk+ = (int)Bit_TableHexi - 65 + 10m + 48;Bitk = '0'/置換選擇I函數(shù)voi

22、d Replace_I(char* K, char* Key) /K為置換選擇I后的密鑰比特流,Key為初始密鑰比特流for (int i = 0; i < 56; i+)Ki = KeyKeyRar_Tablei - 1;/輪密鑰生成函數(shù)void Round_Key_Func(char* Key) /Key為初始密鑰比特流int Left_Move; /左移位數(shù)int m;char temp;Replace_I(K, Key); /置換選擇Ifor (int i = 0; i<16; i+) /16輪密鑰產(chǎn)生if (i = 0 | i = 1 | i = 8 | i = 15)L

23、eft_Move = 1;elseLeft_Move = 2;for (int k = 0; k<Left_Move; k+) /分左右兩塊循環(huán)左移temp = K0;for (m = 0; m < 27; m+)Km = Km + 1;K27 = temp;temp = K28;for (m = 28; m < 55; m+)Km = Km + 1;K55 = temp;for (int j = 0; j < 48; j+) /壓縮置換并儲(chǔ)存Round_Keyij = KRar_Tablej - 1;/初始置換IP函數(shù)void Replace_IP(char* Mes

24、sage, char* Li, char* Ri)int p = 0, q = 0;for (int i = 0; i<64; i+)if (i < 32)Lip+ = MessageIP_Tablei - 1;elseRiq+ = MessageIP_Tablei - 1;/擴(kuò)展函數(shù)Evoid Extend_Func(char* E, char* Ri)for (int i = 0; i < 48; i+)Ei = RiExp_Tablei - 1;/異或運(yùn)算void Xor(char* a, char* b, int length)for (int i = 0; i &l

25、t; length; i+)int temp1 = ai - 48;int temp2 = bi - 48;ai = char(temp1temp2 + 48);/置換運(yùn)算P函數(shù)void Replace_P(char* Ri, char* S)for (int i = 0; i<32; i+)Rii = SP_Tablei - 1;/逆初始置換IP_1函數(shù)void Replace_IP_1(char* CipherText, char* Li, char* Ri)char temp64;for (int i = 0; i < 64; i+)if (i < 32)tempi =

26、 Rii;else if (i < 64)tempi = Lii - 32;for (int i = 0; i < 64; i+)CipherTexti = tempP_1_Tablei - 1;五、設(shè)計(jì)核心代碼#include<iostream>#include"Function.h"using namespace std;/DES加解密函數(shù)void DES(char* Key,char* Message,int Mode) /Mode:0為加密,1為解密int row, column; Round_Key_Func(Key);char M565;

27、 /將明文比特流分為64位一組char temp65;int m = 0; /明文比特流分組數(shù)int length = 0; /比特流長(zhǎng)度int k = 0, flag = 0; for (int i = 0; Messagei != '0' i+)length+;/明文比特流以64為一組分組for (; m < 5; m+)for (int j = 0; j < 64; j+)if (k<length)Mmj = Messagek+;elseflag = 1;Mmj = '0'Mm64 = '0'if (flag)break;

28、if (Mode = 0)if (length = 128)for (int n = 0; n < m; n+)Replace_IP(Mn, Li, Ri);for (int round = 0; round < 16; round+)char Ri_Copy33; /保存明文比特流右半部份for (int i = 0; i<32; i+)Ri_Copyi = Rii;Extend_Func(E, Ri);char temp48;for (int i = 0; i < 48; i+)tempi = Round_Keyroundi;Xor(E, temp, 48);for

29、 (int i = 0; i<8; i+) /S盒置換row = (Ei * 6 - 48) * 2 + (Ei * 6 + 5 - 48);column = (Ei * 6 + 1 - 48) * 8 + (Ei * 6 + 2 - 48) * 4 + (Ei * 6 + 3 - 48) * 2 + (Ei * 6 + 4 - 48);Si * 4 + 3 = char(S_Boxirow * 16 + column % 2 + 48);Si * 4 + 2 = char(S_Boxirow * 16 + column / 2) % 2 + 48);Si * 4 + 1 = char(

30、S_Boxirow * 16 + column / 4) % 2 + 48);Si * 4 = char(S_Boxirow * 16 + column / 8) % 2 + 48);Replace_P(Ri, S);Xor(Ri, Li, 32);for (int i = 0; i<32; i+)/交換左右明文Lii = Ri_Copyi;Replace_IP_1(temp, Li, Ri);for (int q = 0; q < 64; q+)CipherTextn * 64 + q = tempq;elsefor (int n = 0; n < m + 1; n+)Re

31、place_IP(Mn, Li, Ri);for (int round = 0; round < 16; round+)char Ri_Copy33; /保存明文比特流右半部份for (int i = 0; i<32; i+)Ri_Copyi = Rii;Extend_Func(E, Ri);char temp48;for (int i = 0; i < 48; i+)tempi = Round_Keyroundi;Xor(E, temp, 48);for (int i = 0; i<8; i+) /S盒置換row = (Ei * 6 - 48) * 2 + (Ei *

32、 6 + 5 - 48);column = (Ei * 6 + 1 - 48) * 8 + (Ei * 6 + 2 - 48) * 4 + (Ei * 6 + 3 - 48) * 2 + (Ei * 6 + 4 - 48);Si * 4 + 3 = char(S_Boxirow * 16 + column % 2 + 48);Si * 4 + 2 = char(S_Boxirow * 16 + column / 2) % 2 + 48);Si * 4 + 1 = char(S_Boxirow * 16 + column / 4) % 2 + 48);Si * 4 = char(S_Boxiro

33、w * 16 + column / 8) % 2 + 48);Replace_P(Ri, S);Xor(Ri, Li, 32);for (int i = 0; i<32; i+)/交換左右明文Lii = Ri_Copyi;Replace_IP_1(temp, Li, Ri);for (int q = 0; q < 64; q+)CipherTextn * 64 + q = tempq;elsefor (int n = 0; n < m; n+)Replace_IP(Mn, Li, Ri);for (int round = 15; round >= 0; round-)c

34、har Ri_Copy33; /保存明文比特流右半部份for (int i = 0; i<32; i+)Ri_Copyi = Rii;Extend_Func(E, Ri);char temp48;for (int i = 0; i < 48; i+)tempi = Round_Keyroundi;Xor(E, temp, 48);for (int i = 0; i<8; i+) /S盒置換row = (Ei * 6 - 48) * 2 + (Ei * 6 + 5 - 48);column = (Ei * 6 + 1 - 48) * 8 + (Ei * 6 + 2 - 48)

35、* 4 + (Ei * 6 + 3 - 48) * 2 + (Ei * 6 + 4 - 48);Si * 4 + 3 = char(S_Boxirow * 16 + column % 2 + 48);Si * 4 + 2 = char(S_Boxirow * 16 + column / 2) % 2 + 48);Si * 4 + 1 = char(S_Boxirow * 16 + column / 4) % 2 + 48);Si * 4 = char(S_Boxirow * 16 + column / 8) % 2 + 48);Replace_P(Ri, S);Xor(Ri, Li, 32);

36、for (int i = 0; i<32; i+)/交換左右明文Lii = Ri_Copyi;Replace_IP_1(temp, Li, Ri);for (int q = 0; q < 64; q+)CipherTextn * 64 + q = tempq;/DES檢測(cè)函數(shù)void DES_Test()char Key0100; /第一組密鑰比特流char Message200; /明文信息比特流char Message_Input30;char Key0_Input20;cout << "請(qǐng)輸入明文信息(英文字符及數(shù)字組合):"cin >&

37、gt; Message_Input;CharToBit(Message_Input, Message);cout << "請(qǐng)輸入第一組密鑰(英文字符及數(shù)字組合,不少于7個(gè)字符):"cin >> Key0_Input;CharToBit(Key0_Input, Key0);DES(Key0, Message, 0); /用于檢測(cè)DES加解密算法的正確性cout << CipherText;cout << endl;DES(Key0, CipherText, 1);cout << CipherText <<

38、 endl;/3DES加密解密函數(shù)void Triple_DES(char* Key0,char* Key1,char* Key2,char*Message,int Mode) /Mode:0為加密,1為解密if (Mode = 0)DES(Key0, Message, 0);DES(Key1, CipherText, 1);DES(Key2, CipherText, 0);elseDES(Key2, CipherText, 1);DES(Key1, CipherText, 0);DES(Key0, CipherText, 1);/加密前的準(zhǔn)備工作void Triple_DES_Prepare

39、()char Key0100; /第一組密鑰比特流char Key1100; /第二組密鑰比特流char Key2100; /第三組密鑰比特流char Message200; /明文信息比特流char Message_Input30;char Key0_Input20;char Key1_Input20;char Key2_Input20;cout << "請(qǐng)輸入明文信息(英文字符及數(shù)字組合):"cin >> Message_Input;CharToBit(Message_Input, Message);cout << "請(qǐng)輸入第一組密鑰(英文字符及數(shù)字組合,不少于7個(gè)字符):"cin >> Key0_Input;CharToBit(Key0_Input, Key0);cout << "請(qǐng)輸入第二組密鑰(英

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論