版權(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ì)報(bào)告AES加密解密軟件的實(shí)現(xiàn)目錄1、選題背景42、設(shè)計(jì)的目標(biāo)42.1基本目標(biāo):42.2較高目標(biāo):53、功能需求分析54、模塊劃分64.1、密鑰調(diào)度64.2、加密84.2.1、字節(jié)代替(SubBytes)84.2.2、行移位(ShiftRows)104.2.3、列混合(MixColumn)114.2.4、輪密鑰加(AddRoundKey)134.2.5、加密主函數(shù)144.3、解密164.3.1、逆字節(jié)替代(InvSubBytes)164.3.2、逆行移位(InvShiftRows)174.3.3、逆列混合(InvMixCloumns)174.3.4、輪密鑰加(AddRou
2、ndKey)184.3.5、解密主函數(shù)185.測(cè)試報(bào)告205.1主界面205.2測(cè)試鍵盤輸入明文和密鑰加密205.3測(cè)試鍵盤輸入密文和密鑰加密215.3測(cè)試文件輸入明文和密鑰加密225.4測(cè)試文件輸入密文和密鑰加密225.5軟件說(shuō)明236.課程設(shè)計(jì)報(bào)告總結(jié)237.參考文獻(xiàn)241、選題背景高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),在密碼學(xué)中又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級(jí)加密標(biāo)準(zhǔn)由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于2001年11月2
3、6日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。2006年,高級(jí)加密標(biāo)準(zhǔn)已然成為對(duì)稱密鑰加密中最流行的算法之一。該算法為比利時(shí)密碼學(xué)家Joan Daemen和Vincent Rijmen所設(shè)計(jì),結(jié)合兩位作者的名字,以Rijndael之命名之,投稿高級(jí)加密標(biāo)準(zhǔn)的甄選流程。(Rijndael的發(fā)音近于 "Rhine doll") 嚴(yán)格地說(shuō),AES和Rijndael加密法并不完全一樣(雖然在實(shí)際應(yīng)用中二者可以互換),因?yàn)镽ijndael加密法可以支援更大范圍的區(qū)塊和密鑰長(zhǎng)度:AES的區(qū)塊長(zhǎng)度固定為128 位元,密鑰長(zhǎng)度則可以是128,192或256位元
4、;而Rijndael使用的密鑰和區(qū)塊長(zhǎng)度可以是32位元的整數(shù)倍,以128位元為下限,256位元為上限。加密過程中使用的密鑰是由Rijndael密鑰生成方案產(chǎn)生。大多數(shù)AES計(jì)算是在一個(gè)特別的有限域完成的。 截至2006年,針對(duì)AES唯一的成功攻擊是旁道攻擊 旁道攻擊不攻擊密碼本身,而是攻擊那些實(shí)作于不安全系統(tǒng)(會(huì)在不經(jīng)意間泄漏資訊)上的加密系統(tǒng)。2005年4月,D.J. Bernstein公布了一種緩存時(shí)序攻擊法,他以此破解了一個(gè)裝載OpenSSL AES加密系統(tǒng)的客戶服務(wù)器6。為了設(shè)計(jì)使該服務(wù)器公布所有的時(shí)序資訊,攻擊算法使用了2億多條篩選過的明碼。有人認(rèn)為誰(shuí)?,對(duì)于需要多個(gè)跳躍的國(guó)際互聯(lián)網(wǎng)
5、而言,這樣的攻擊方法并不實(shí)用7。 Bruce Schneier稱此攻擊為“好的時(shí)序攻擊法”8。 2005年10月,Eran Tromer和另外兩個(gè)研究員發(fā)表了一篇論文,展示了數(shù)種針對(duì)AES的緩存時(shí)序攻擊法。其中一種攻擊法只需要800個(gè)寫入動(dòng)作,費(fèi)時(shí)65毫秒,就能得到一把完整的AES密鑰。但攻擊者必須在執(zhí)行加密的系統(tǒng)上擁有執(zhí)行程式的權(quán)限,方能以此法破解該密碼系統(tǒng)。雖然高級(jí)加密標(biāo)準(zhǔn)也有不足的一面,但是,它仍是一個(gè)相對(duì)新的協(xié)議。因此,安全研究人員還沒有那么多的時(shí)間對(duì)這種加密方法進(jìn)行破解試驗(yàn)。我們可能會(huì)隨時(shí)發(fā)現(xiàn)一種全新的攻擊手段會(huì)攻破這種高級(jí)加密標(biāo)準(zhǔn)。至少在理論上存在這種可能性。2、設(shè)計(jì)的目標(biāo)2.1基
6、本目標(biāo):(1)在深入理解AES加密/解密算法理論的基礎(chǔ)上,能夠設(shè)計(jì)一個(gè)AES加密/解密軟件系統(tǒng),采用控制臺(tái)模式,使用VS2010進(jìn)行開發(fā),所用語(yǔ)言為C語(yǔ)言進(jìn)行編程,實(shí)現(xiàn)加密解密;(2)能夠完成只有一個(gè)明文分組的加解密,明文和密鑰是ASCII碼,長(zhǎng)度都為16個(gè)字符(也就是固定明文和密鑰為128比特),輸入明文和密鑰,輸出密文,進(jìn)行加密后,能夠進(jìn)行正確的解密;(3)程序運(yùn)行時(shí),能夠按照要求輸出最后兩輪的輪密鑰,以及最后兩輪加密或解密之后的值,16進(jìn)制表示;(4)程序有良好的人機(jī)交互操作;(5)能夠?qū)崿F(xiàn)從兩個(gè)文件分別讀取明文和密鑰,并在程序中輸出明文及密鑰;(6)要求有與標(biāo)準(zhǔn)fips-197進(jìn)行比較
7、的獨(dú)立模塊;(7)最后提供所設(shè)計(jì)系統(tǒng)的報(bào)告及完整的軟件,關(guān)鍵代碼等。2.2較高目標(biāo):能完成以下全部或部分功能:(1)如果從文件讀取的明文不止一個(gè)分組,程序能完成分組,然后加密;最后一個(gè)分組長(zhǎng)度不足時(shí)要求完成填充;輸入信息可以是文本文檔,或者普通文件。進(jìn)行加密后,能夠進(jìn)行正確的解密;(2)密鑰包括128bit、192bit、256bit三種情況,有三種情況時(shí)與標(biāo)準(zhǔn)fips-197進(jìn)行比較的獨(dú)立模塊,且從文本文件讀取。(3)程序代碼有比較好的結(jié)構(gòu),模塊劃分合理,如用類進(jìn)行封裝,通過調(diào)用類的成員函數(shù)實(shí)現(xiàn)加密解密功能,函數(shù)的參數(shù)及返回值設(shè)置合理等;(4)對(duì)加密大文件的考慮;(5)多線程的使用;(6)界
8、面友好,程序設(shè)計(jì)實(shí)現(xiàn)有創(chuàng)新。 3、功能需求分析AES中的操作均是以字節(jié)作為基礎(chǔ)的,用到的變量也都是以字節(jié)為基礎(chǔ)。State可以用4×4的矩陣表示。AES算法結(jié)構(gòu)對(duì)加密和解密的操作,算法由輪密鑰開始,并用Nr表示對(duì)一個(gè)數(shù)據(jù)分組加密的輪數(shù)(加密輪數(shù)與密鑰長(zhǎng)度的關(guān)系如表2所示)。AES算法的主循環(huán)State矩陣執(zhí)行輪迭代運(yùn)算,每輪都包括所有 4個(gè)階段的代換,分別是在規(guī)范中被稱為 SubBytes(字節(jié)替換)、ShiftRows(行位移變換)、MixColumns(列混合變換) 和AddRoundKey,(由于外部輸入的加密密鑰K長(zhǎng)度有限 ,所以在算法中要用一個(gè)密鑰擴(kuò)展程序(Keyexpan
9、sion)把外部密鑰 K 擴(kuò)展成更長(zhǎng)的比特串,以生成各輪的加密和解密密鑰。)最后執(zhí)行只包括 3個(gè)階段 (省略 MixColumns變換)的最后一輪運(yùn)算。表2 AES參數(shù)密鑰長(zhǎng)度(bits)128192256明文分組長(zhǎng)度(bits)128128128輪數(shù)101214每輪密鑰長(zhǎng)度(bits)128128128擴(kuò)展密鑰長(zhǎng)度(bytes)176206240基本要求按標(biāo)準(zhǔn)分組,以128比特為分組大小。所以輪數(shù)為10輪,密鑰長(zhǎng)度也為128比特4、模塊劃分劃分為三個(gè)部分,密鑰調(diào)度,加密,解密, 4.1、密鑰調(diào)度一密鑰調(diào)度包括兩個(gè)部分:密鑰擴(kuò)展和輪密鑰選取。密鑰擴(kuò)展的作用是在數(shù)據(jù)加密/解密前得到輪變換中中使用
10、的輪密鑰,其基本原則是:1) 輪密鑰的密鑰長(zhǎng)度為分組長(zhǎng)乘以(1 +Nr),如果分組長(zhǎng)為128bit,輪數(shù)為了10,則輪密鑰的長(zhǎng)度為128*(10+1)= 1408bit;2) 種子密鑰擴(kuò)展為擴(kuò)展密鑰,種子密鑰長(zhǎng)度為4*NK個(gè)字節(jié);3) 輪密鑰由以下方法從擴(kuò)展密鑰中獲得:對(duì)第1輪密鑰由前Nb個(gè)字構(gòu)成;第2輪密鑰由第二個(gè)Nb個(gè)字節(jié)即第Nb + 1個(gè)字到第2Nb個(gè)字構(gòu)成;以下依次類推。擴(kuò)展密鑰用數(shù)組w(Nb*(Nr + 1)表示,前Nk個(gè)字是原密鑰,其它密鑰字通過計(jì)算方法生成。子字節(jié)變換是一個(gè)返回4個(gè)字節(jié)的函數(shù),每個(gè)字節(jié)都是它輸入字中相應(yīng)位置字節(jié)通過S盒作用后的結(jié)果。循環(huán)左移變換返回的是這4個(gè)字節(jié)經(jīng)
11、循環(huán)置換后的字,即將該字循環(huán)左移一個(gè)字節(jié),如輸入字為w = (a0,a1,a2,a3),則變換后輸出字為w = (a1,a2,a3,a0)。擴(kuò)展密鑰的前Nk個(gè)字由種子密鑰構(gòu)成,隨后的字wi等于字wi-1經(jīng)一些變換后得到的字temp和字Wi-Nk異或而成;而且對(duì)位置為Nk倍數(shù)的字變換中不僅運(yùn)用了循環(huán)左移變換和子字節(jié)變換,還運(yùn)用了輪常數(shù)Rcon對(duì)變換后的字temp進(jìn)行異或。對(duì)輪常數(shù)的定義為:Rconi = (Rci,00,00,00)而Rci表示在有限域GF(28)中xi-1的值,即:Rci = 1 (即01)Rci=x·(Rci-1) = xi-1二關(guān)鍵代碼/先將密鑰數(shù)組的元素值存儲(chǔ)在
12、3維數(shù)組中,然后對(duì)其擴(kuò)展,擴(kuò)展方式氛圍兩種,條件是Ki是否是4的倍數(shù),兩種密鑰方式不同,復(fù)雜的是當(dāng)為4的倍數(shù)時(shí),要進(jìn)行生成Ti-1,先是行移位,然后是進(jìn)入S盒字節(jié)替代,最后與輪常數(shù)異或得到,再將此T與Ki-4異或void KeyExpansion(unsigned char *Key,unsigned charExpandKey44) unsigned char RC = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36; /輪常數(shù) int i,j,m,n;for(m=0;m<4;m+) for(n=0;n<4;n
13、+)ExpandKey0mn=Keyn*4+m; for(i=1;i<11;i+) for(j=0;j<4;j+)unsigned char Temp4; for(m=0; m<4; m+)Tempm = j ? ExpandKeyimj-1 : ExpandKeyi-1m3; /進(jìn)行兩種劃分,先把密鑰存在一個(gè)變量數(shù)組中,if(j = 0)unsigned char t = Temp0;for(m=0; m<3; m+)Tempm = SboxTemp(m+1)%4;Temp3 = Sboxt;Temp0 = RCi-1;for(m=0; m<4; m+) Exp
14、andKeyimj =ExpandKeyi-1mj Tempm; / 4.2、加密加密流程圖:4.2.1、字節(jié)代替(SubBytes)一AES定義了一個(gè)S盒,State中每個(gè)字節(jié)按照如下方式映射為一個(gè)新的字節(jié):把該字節(jié)的高4位作為行值,低4位作為列值,然后取出S盒中對(duì)應(yīng)行和列的元素作為輸出。例如,十六進(jìn)制數(shù)84。對(duì)應(yīng)S盒的行是8列是4,S盒中該位置對(duì)應(yīng)的值是5F。S盒是一個(gè)由16x16字節(jié)組成的矩陣,包含了8位值所能表達(dá)的256種可能的變換。S盒按照以下方式構(gòu)造:(1) 逐行按照升序排列的字節(jié)值初始化S盒。第一行是00,01,02,OF;第二行是10,l1,1F等。在行X和列Y的字節(jié)值是xy。
15、(2) 把S盒中的每個(gè)字節(jié)映射為它在有限域GF()中的逆。GF代表伽羅瓦域,GF()由一組從0x00到0xff的256個(gè)值組成,加上加法和乘法。00被映射為它自身00。(3) 把S盒中的每個(gè)字節(jié)記成。對(duì)S盒中每個(gè)字節(jié)的每位做如下變換:上式中是指值為63字節(jié)C第i位,即。 符號(hào)()表示更新后的變量的值。AES用以下的矩陣方式描述了這個(gè)變換:最后完成的效果如圖:二關(guān)鍵代碼 直接采取讓4x4矩陣的值進(jìn)入S盒,這是因?yàn)閿?shù)組元素的要求前四位作為行數(shù),后四位作為列數(shù),而元素值剛好是16進(jìn)制表示形如:AB,元素的值=A*16+B,這個(gè)剛好就是S盒的位置,void SubBytes(unsigned char
16、 State4) int i,j; for(i=0; i<4; i+) for(j=0; j<4; j+) Stateij = SboxStateij; 4.2.2、行移位(ShiftRows)一State的第一行字節(jié)保持不變,State的第二行字節(jié)循環(huán)左移一個(gè)字節(jié),State的第三行字節(jié)循環(huán)左移兩個(gè)字節(jié),State的第四行循環(huán)左移三個(gè)字節(jié)。行移位左偏移量:變化如圖2所示。二關(guān)鍵代碼void ShiftRows(unsigned char State4) /采用最原始的辦法,以分別為0.1.2.3字節(jié) unsigned char k; k=State10; State10=Stat
17、e11; State11=State12; State12=State13; State13=k; k=State21; State21=State23;State23=k;k=State20;State20=State22;State22=k; k=State33;State33=State32;State32=State31;State31=State30;State30=k;4.2.3、列混合(MixColumn)一列混合變換是一個(gè)替代操作,是AES最具技巧性的部分。它只在AES的第0,1,Nr一1輪中使用,在第N r輪中不使用該變換。乘積矩陣中的每個(gè)元素都是一行和一列對(duì)應(yīng)元素的乘積之和
18、。在MixColumns變換中,乘法和加法都是定義在GF()上的。State的每一列 () 1=0,,3;J=0,被理解為 GF()上的多項(xiàng)式,該多項(xiàng)式與常數(shù)多項(xiàng)式相乘并模約化。這個(gè)運(yùn)算需要做GF()上的乘法。但由于所乘的因子是三個(gè)固定的元素02、03、01,所以這些乘法運(yùn)算仍然是比較簡(jiǎn)單的(注意到乘法運(yùn)算所使用的模多項(xiàng)式為)。設(shè)一個(gè)字節(jié)為b=(b7b6b5b4b3b2b1b0),則b×01=b; b×02=(b6b5b4b3b2b1b00)+(000b7b70b7b7); b×03=b×01+b×02。(請(qǐng)注意,加法為取模2的加法,即逐比特異
19、或)寫成矩陣形式為:最后完成的效果如圖:二關(guān)鍵代碼/其中調(diào)用小函數(shù)xtime,根據(jù)02乘法原理編寫,最后03乘是在02乘的基礎(chǔ)上進(jìn)行了03=(21+1 ),同理進(jìn)行一次02乘,在與本省異或void MixColumns(unsigned char State4) unsigned char output44;int i, j; for(j=0; j< 4; j+) for(i=0; i<4; i+) outputij = xtime(Statei%4j) /0x02乘法 ( State ( i + 1 ) % 4j xtime( State ( i + 1 ) % 4j ) ) /
20、0x03乘法 State ( i + 2 ) % 4j /0x01乘法 State ( i + 3 ) % 4j; /0x01乘法 for(i=0; i<4; i+) for(j=0; j< 4; j+)Stateij=outputij; 02乘法函數(shù):unsigned char xtime (unsigned char input) int temp; temp = input<<1; if(input & 0x80) temp = 0x1b; return temp; 4.2.4、輪密鑰加(AddRoundKey)一Add RoundKey稱為輪密鑰加變換,
21、128位的State按位與 128位的密鑰XOR:對(duì) j=0, ,L-1 輪密鑰加變換很簡(jiǎn)單,卻影響了 State中的每一位。密鑰擴(kuò)展的復(fù)雜性和 AES的其他階段運(yùn)算的復(fù)雜性,卻確保了該算法的安全性。最后完成的效果如圖:二關(guān)鍵代碼void AddRoundKey(unsigned char State4,unsigned char Key4) int i,j;for(i=0;i<4;i+)for(j=0;j<4;j+)Stateji=Keyji;4.2.5、加密主函數(shù)關(guān)鍵代碼/根據(jù)加密函數(shù)流程圖,進(jìn)行架構(gòu)加密主函數(shù),參數(shù)分別是一個(gè)密鑰數(shù)組,一個(gè)明文分組進(jìn)入,參與運(yùn)算,其中密鑰一進(jìn)入
22、就進(jìn)入密鑰擴(kuò)展,為以后的加密產(chǎn)生密鑰,void Encryption(unsigned char input16,unsigned char Key16) KeyExpansion(Key,ExpandKey); unsigned char State44; int i,j,k; for(i=0; i<4; i+) for(j=0; j<4 ;j+) Stateij= input4*j+i; AddRoundKey(State,ExpandKey0); for(i=1; i<=10; i+) SubBytes(State); ShiftRows(State); if(i!=1
23、0)MixColumns(State); AddRoundKey(State,ExpandKeyi); if(i>=9) printf("n第%d輪加密密鑰矩陣為:n",i); int m,n; for(m=0;m<4;m+) for(n=0;n<4;n+) printf("%X,",ExpandKeyinm); printf("n"); printf("第%d輪加密出的密文為:",i); for(m=0;m<4;m+) for(n=0;n<4;n+) printf("%X,
24、",Statenm); printf("n"); for(j=0; j<4; j+) for(k=0; k<4 ;k+)input4*k+j=Statejk; 4.3、解密解密流程:4.3.1、逆字節(jié)替代(InvSubBytes)關(guān)鍵代碼與字節(jié)代替類似,逆字節(jié)代替基于逆S盒實(shí)現(xiàn)。直接進(jìn)圖逆S盒,原理很簡(jiǎn)單,與字節(jié)替代相同,只是盒子不同void InvSubBytes(unsigned char State4) int i,j; for(i=0; i<4; i+) for(j=0; j<4; j+) Stateij = InvSboxStat
25、eij; 4.3.2、逆行移位(InvShiftRows)關(guān)鍵代碼/與加密時(shí)的行移位區(qū)別在于移位方向相反。即向右移動(dòng)void InvShiftRows(unsigned char State4) char k;k=State13; State13=State12;State12=State11;State11=State10;State10=k;k=State23; State23=State21; State21=k;k=State22;State22=State20;State20=k;k=State30; State30=State31;State31=State32;State32=S
26、tate33;State33=k;4.3.3、逆列混合(InvMixCloumns)關(guān)鍵代碼/逆列混合操作與列混合一樣,只是多項(xiàng)式d(x)不同,因而可以表示為矩陣相乘來(lái)實(shí)現(xiàn),輸入矩陣與固定矩陣(十六進(jìn)制)相乘, void InvMixColumns(unsigned char State4) unsigned char output44; int i, j; for(j=0; j< 4; j+) for(i=0; i<4; i+) outputij = (xtime(xtime(xtime(Statei % 4j) xtime(xtime(Statei % 4j)xtime(Sta
27、tei % 4j) /0x0E=14乘法 (xtime(xtime(xtime(State ( i + 1 ) % 4j) xtime(State ( i + 1 ) % 4j) State ( i + 1 ) % 4j) /0x0B=11乘法 (xtime(xtime(xtime(State ( i + 2 ) % 4j) xtime(xtime(State ( i + 2 ) % 4j) State ( i + 2 ) % 4j) /0x0D=13乘法 (xtime(xtime(xtime(State ( i + 3 ) % 4j) State ( i + 3 ) % 4j); /0x09
28、乘法 for(i=0; i<4; i+) for(j=0; j< 4; j+)Stateij=outputij; 4.3.4、輪密鑰加(AddRoundKey)與加密完全相同4.3.5、解密主函數(shù)關(guān)鍵代碼/與加密函數(shù)不同的是,過程相反,根據(jù)流程圖構(gòu)造解密主函數(shù),輪數(shù)相同,由于是AES本質(zhì)是對(duì)稱函數(shù),所以是相反的而已void InvEncryption(unsigned char input16,unsigned char Key16) int i,j,k;KeyExpansion(Key,ExpandKey);unsigned char State44; for(j=0; j<
29、;4; j+) for(k=0; k<4 ;k+) Statejk = inputk*4+j; AddRoundKey(State,ExpandKey10); for(i=9; i>=0; i-) InvShiftRows(State);InvSubBytes(State); AddRoundKey(State, ExpandKeyi);if(i)InvMixColumns(State);if(i<=1) /* 輸出最后解密兩輪密鑰和密文 */ printf("n第%d輪密鑰矩陣為:n",10-i); int m,n; for(m=0;m<4;m+)
30、 for(n=0;n<4;n+) printf("%X,",ExpandKeyinm); printf("n"); printf("第%d輪解密出的消息為:",10-i); for(m=0;m<4;m+) for(n=0;n<4;n+) printf("%X,",Statenm); printf("n"); printf("n最后解密出的明文消息為:"); for(int m=0;m<4;m+) for(int n=0;n<4;n+) print
31、f("%c ",Statenm); printf("n");for(j=0;j<4;j+) for(k=0; k<4 ;k+) inputk*4+j = Statejk; 5.測(cè)試報(bào)告由于加密解密分兩種方式,一種是由鍵盤輸入進(jìn)行加密解密。另一種是文件讀入加密解密5.1主界面根據(jù)數(shù)字選擇使用軟件,下面分開測(cè)試:5.2測(cè)試鍵盤輸入明文和密鑰加密鍵盤輸入1,選擇加密,并輸入:IloveYouYouKnow? 共計(jì)16個(gè)字符,再任意輸入16字符的密鑰,為方便起見,測(cè)試時(shí),輸入為11111111111111111,最后加密成功之后輸出中間密鑰與密文狀態(tài)其中最后加密密文為:A1,00,E9,BD,13,9A,CC,51,76,6A,3F,B8,AA,34,6A,C5.3測(cè)試鍵盤輸入密文和密鑰加密選擇3,進(jìn)入解密界面。為測(cè)試是否成功加密,采用上次加密時(shí)的密文進(jìn)行輸入,如圖結(jié)果說(shuō)明加密解密是成功的。5.3測(cè)試文件輸入明文和密鑰加密/選擇2進(jìn)入文件加密界面,輸入保存有明文的文件名:Mingwen.txt.密鑰文件名:Key.txt 輸出到空文件State.txt中進(jìn)行保存5
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 玉溪師范學(xué)院《飛盤》2022-2023學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《小學(xué)教師專業(yè)成長(zhǎng)》2021-2022學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《歲嬰兒的保育與教育》2021-2022學(xué)年第一學(xué)期期末試卷
- 冀教版四年級(jí)上冊(cè)數(shù)學(xué)第四單元 線和角 測(cè)試卷附答案(培優(yōu)a卷)
- 北師大版四年級(jí)上冊(cè)數(shù)學(xué)第三單元 乘法 測(cè)試卷附完整答案(名師系列)
- 2024年凝血因子VIII、IX合作協(xié)議書
- 2024合同架構(gòu)樣本范文
- 航空航天高性能復(fù)合材料部件智能制造項(xiàng)目環(huán)評(píng)報(bào)告表
- 2024年攝影擴(kuò)印服務(wù)合作協(xié)議書
- 鹽城師范學(xué)院《市場(chǎng)營(yíng)銷學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 大學(xué)生職業(yè)生涯規(guī)劃成品
- (高清版)DB42T 2179-2024 裝配式建筑評(píng)價(jià)標(biāo)準(zhǔn)
- DL∕T 796-2012 風(fēng)力發(fā)電場(chǎng)安全規(guī)程
- 2024廣西繼續(xù)教育公需科目(高質(zhì)量共建“一帶一路”)
- 2024年國(guó)家公務(wù)員考試行測(cè)真題完整版
- MOOC 數(shù)學(xué)文化十講-南開大學(xué) 中國(guó)大學(xué)慕課答案
- 寫作與溝通智慧樹知到課后章節(jié)答案2023年下杭州師范大學(xué)
- 漢語(yǔ)拼音字母表默寫表
- 困境兒童(含孤兒事實(shí)無(wú)人撫養(yǎng)兒童監(jiān)護(hù)缺失兒童)風(fēng)險(xiǎn)評(píng)估表
- 漢語(yǔ)拼音過關(guān)分類檢測(cè)(直接打印)
- 血液凈化詳解
評(píng)論
0/150
提交評(píng)論