




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
古典密碼實驗報告古典密碼實驗報告古典密碼實驗報告實驗報告實驗室名稱:SimpleSPC信息安全云實驗系統(tǒng)實驗項目名稱:古典密碼——置換密碼實驗學(xué)時:1學(xué)時實驗原理:1)算法原理a)置換密碼算法就是不改變明文字符,而就是按照某一規(guī)則重新排列消息中的比特或字符順序,才而實現(xiàn)明文信息的加密。將明文中的字母按照給定的順序安排在一個矩陣中,然后用根據(jù)密鑰提供的順序重新組合矩陣中的字母,從而形成密文。其解密過程就是根據(jù)密鑰的字母數(shù)作為列數(shù),將密文按照列、行的順序?qū)懗?再根據(jù)密鑰給出的矩陣置換產(chǎn)生新的矩陣,從而恢復(fù)明文。b)置換密碼(PermutationCipher),又稱換位密碼。算法實施時,明文的字母保持相同,但順序會被打亂。置換只不過就是一個簡單的換位,每個置換都可以用一個置換矩陣Ek來表示。每個置換都有一個與之對應(yīng)的逆置換Dk。置換密碼的特點就是僅有一個發(fā)送方與接受方知道的加密置換(用于加密)及對應(yīng)的逆置換(用于解密)。它就是對明文L長字母組中的字母位置進行重新排列,而每個字母本身并不改變。c)設(shè)n為一固定整數(shù),P、C與K分別為明文空間、密文空間與密鑰空間。明/密文就是長度為n的字符序列,分別記為X(x1,x2,…,xn)屬于P與Y(y1,y2,…,yn)屬于C,K就是定義在{1,2,…,n}的所有置換組成的集合。對任何一個密鑰(即一個置換),定義置換如下:
加密置換為:
解密置換為:
上式中,就是的逆置換,密鑰空間K的大小為n!2)算法參數(shù)
置換密碼算法主要有c、m、k、n四個參數(shù)。c為密文,m就是明文,k為密鑰,n為模數(shù)。3)算法流程
算法流程。如圖所示實驗?zāi)康?學(xué)習置換密碼的原理2)學(xué)習置換密碼的算法實現(xiàn)實驗內(nèi)容:1、在虛擬機上運行置換密碼、exe可執(zhí)行文件,根據(jù)提示輸入明文與密鑰,同時檢查輸出的解密后的結(jié)果就是否與明文一致。2、學(xué)習掌握置換密碼的原理,并根據(jù)明文與密鑰計算出對應(yīng)的加密文,并與程序輸出的結(jié)果進行比對,掌握其加密解密的過程。3、瞧懂實驗程序代碼,如有需要可在其上進行優(yōu)化。實驗器材(設(shè)備、虛擬機名稱):Windows7工具:C:\tools\密碼學(xué)課程\01密碼學(xué)算法\02古典密碼\01置換密碼實驗步驟:1、查瞧置換密碼算法運行結(jié)果并學(xué)習其核心算法1、1
點擊【置換密碼、exe】,選擇對明文【asdfgh】使用密鑰【qwerty】進行加密,程序運行結(jié)果。如下圖所示
但就是在實驗中發(fā)現(xiàn),當密鑰中包含相同字符時,加密與解密結(jié)果會出現(xiàn)問題,如下圖所示:在觀察程序代碼后,發(fā)現(xiàn)應(yīng)該就是加密表生成出現(xiàn)問題,因此在實驗中我重新修改了程序中計算加密表部分的代碼,利用雙層循環(huán),對于每一個字符,計算比其小的字符或者與它一樣但就是出現(xiàn)在其左側(cè)的字符個數(shù),得到的序列便就是加密表的內(nèi)容,將程序按照上述思路修改后測試運行正確。1、2
更新后的置換密碼的核心算法如下所示。#include<iostream>#include<algorithm>usingnamespacestd;chara[20][6],b[20][6],c[20][6],m[102],key[6],ky[6],mw[102],bb[102];intzh[6],zh1[6];intj,len,length,e,f;voidISD_zhihuan_zhihuan(intle){ inti,s=0; if(le%6==0) //明文長度就是6的倍數(shù)時 { for(j=0;j<(le/6);j++) for(i=0;i<6;i++,s++) { a[j][i]=m[s]; } } else //明文長度不就是6的倍數(shù)時 { for(j=0;j<((le-le%6)/6);j++) for(i=0;i<6;i++,s++) { a[j][i]=m[s]; } j++; intw=0; for(intl=le-le%6;l<le;l++,w++) { a[j][w]=m[l]; } for(intll=le%6;ll<6;ll++) { a[j][ll]='X'; //數(shù)組后補x使數(shù)組長度為6的倍數(shù) } } length=6*j;}intISD_zhihuan_encrypt(){ cout<<endl<<"請輸入密鑰,要求就是6位字母:"; cin>>key; for(intp=0;p<6;p++) { ky[p]=key[p]; } //生成置換表 for(inti=0;i<6;i++){ zh[i]=1; for(intj=0;j<6;j++){ if(key[j]<key[i]||(j<i&&key[j]==key[i])){ zh[i]++; } } } cout<<endl<<"加密后的結(jié)果為:"; intq=0; for(intg=0;g<=j;g++) for(inth=0;h<6;h++,q++) { b[g][h]=a[g][zh[h]-1]; //明文進行置換 bb[q]=b[g][h]; cout<<bb[q]; } return0;} intISD_zhihuan_decrypt() { intss[6]={1,2,3,4,5,6}; for(intw=0;w<6;w++) { for(intp=0;p<6;p++) { if(ss[w]==zh[p]) zh1[w]=p+1; //計算逆置換表 } } cout<<endl<<"解密后的結(jié)果為:"; int t=0; for(intg=0;g<=j;g++) for(inth=0;h<6;h++,t++) { c[g][h]=b[g][zh1[h]-1]; //明文進行逆置換 mw[t]=c[g][h]; } return0; } void main() { cout<<endl; cout<<"請輸入明文:"; intk=0; cin>>m; while(m[k]!='\0') //計算明文長度 k++; len=k; cout<<"明文長度len="<<len<<endl; ISD_zhihuan_zhihuan(len); ISD_zhihuan_encrypt(); ISD_zhihuan_decrypt(); for(intd=0;d<len+6;d++) cout<<mw[d]; //輸出解密后的明文 inty,yy; for(yy=0;yy<len;yy++) { if(mw[yy]==m[yy]) y=1; else y=0; } if(y=1) cout<<endl<<"CRYPT_OK"<<endl; if(y=0) cout<<endl<<"CRYPT_ERROR"<<endl; }實驗結(jié)果及分析:測試修改后的程序,結(jié)果正確,如下圖所示:下面對結(jié)果進行分析:對于輸入的密鑰miaooh計算每個字符的加密置換表值為431562因此可獲得加密結(jié)果為evlyao驗證輸出結(jié)果正確計算每個字符的解密置換表值為362145因此可獲得解密結(jié)果為loveya實驗結(jié)論:置換密碼作為傳統(tǒng)古典密碼的一種,思想比較簡單,即將明文按照密鑰的長度一行一行地寫成一個矩陣,然后每一行按密鑰的順序?qū)⒚魑淖x出獲得的即為加密文。但就是由于置換密碼只就是將明文簡單地作順序改變,字符并沒有變化,因此破譯起來比較容易,安全性較低??偨Y(jié)及心得體會:作為第一個實驗,熟悉了實驗的操作環(huán)境,并學(xué)會了置換密碼的原理,嘗試對明文進行加密并將其解密。通過查瞧程序源碼對加密方法了解更加透徹,在將源碼進行修改后解決了密鑰中包含相同字符結(jié)果出錯的問題,收獲很大,為以后其她加密算法的學(xué)習作準備。實驗報告學(xué)生姓名李昕宜學(xué)號2指導(dǎo)老師實驗地點N3實驗時間2018/3/19班級一班實驗室名稱:SimpleSPC信息安全云實驗系統(tǒng)實驗項目名稱:古典密碼——Vigenere密碼實驗學(xué)時:1學(xué)時實驗原理:1)算法原理
a)Vigenere密碼就是由法國密碼學(xué)家BlaisedeVigenere于1858年提出的一種代換密碼,它就是多表代換密碼的典型代表。b)定義:設(shè)m為某一固定的正整數(shù),P、C與K分別為明文空間、密文空間與密鑰空間,并且P=K=C=(Z26)m,對一個密鑰k=(k1,k2,…,km),定義維吉尼亞密碼的加解密算法如下:
Vigenere密碼加密算法:ek(x1,x2,…,xm)=(x1+k1,x2+k2,…,xm+km)
Vigenere密碼解密算法:dk(y1,y2,…,ym)=(y1-k1,y2-k2,…,ym-km)。
其中k=(k1,k2,…,km)就是一個長為m的密鑰字,密鑰空間的大小為26m,所以對一個相對小的m,窮舉密鑰也需要很長的時間。如m=7,則密鑰空間大小超過8×109,所以手工搜索非常困難。當明文的長度超過m時,可將明文串按長度m分局,然后對每一組使用密鑰k加密。
2)算法參數(shù)
Vigenere密碼算法主要有c、m、k三個個參數(shù)。c為密文,m就是明文,k為密鑰。3)算法流程
算法流程如下。如圖所示實驗?zāi)康?1)學(xué)習維吉尼亞算法的原理2)學(xué)習維吉尼亞算法的實現(xiàn)實驗內(nèi)容:1、在虛擬機上運行Vigenere、exe可執(zhí)行文件,根據(jù)提示輸入明文與密鑰,同時檢查輸出的解密后的結(jié)果就是否與明文一致。2、學(xué)習掌握維吉尼亞算法的原理,并根據(jù)明文與密鑰計算出對應(yīng)的加密文,并與程序輸出的結(jié)果進行比對,掌握其加密解密的過程。3、瞧懂實驗程序代碼,如有需要可在其上進行優(yōu)化。實驗器材(設(shè)備、虛擬機名稱):Windows7工具:C:\tools\密碼學(xué)課程\01密碼學(xué)算法\02古典密碼\03vigenere密碼算法實驗步驟:一、查瞧維吉尼亞密碼算法運行結(jié)果并學(xué)習其核心算法1、1
點擊文件【Vigenere、exe】,輸入指令【v】,輸入明文【xipuyangguang】,即可得到密鑰與密文與明文,如圖1所示圖11、2
維吉尼亞密碼的核心算法如下所示。根據(jù)實驗中已給代碼進行分析了解了維吉尼亞密碼的實現(xiàn)步驟,將主程序中沒有用到的生命變量去掉,加入一些交互語句得到如下代碼:#include<ctype、h>#include<stdio、h>#include<conio、h>#include<string、h>#include<iostream>usingnamespacestd;voidISD_Vigenere_crypt(charm[],chark[],charr[]){ inti,j,s=0; j=strlen(k); for(i=0;m[i];i++) m[i]=tolower(m[i]); for(i=0;k[i];i++) k[i]=tolower(k[i]); for(i=0;m[i];i++) if(isalpha(m[i])) { r[i]=(m[i]-'a'+k[s%j]-'a')%26+'a'; s++; /*s用來跳過明文中的空格字符*/ } else r[i]=m[i]; r[i]=0; /*密文字符串結(jié)束符*/}voidISD_Vigenere_decrypt(charc[],chark[],charm[]){ inti,j,s=0; j=strlen(k); for(i=0;c[i];i++) c[i]=tolower(c[i]); for(i=0;k[i];i++) k[i]=tolower(k[i]); for(i=0;c[i];i++) if(isalpha(c[i])) { m[i]=(c[i]-k[s%j]+26)%26+'a'; s++; } else m[i]=c[i]; m[i]=0;}voidmain(intargc,char*argv[]){ charm[1024]; printf("古典密碼算法演示程序"); charcommand; printf("\n"); cout<<"輸入v:維吉尼亞加密!\n"; cout<<"輸入h:獲得幫助!\n"; cout<<"輸入e:退出程序!\n"; cout<<"請輸入指令:";loop:cin>>command; switch (command) { case'v': { chark[]="best"; cout<<"\ninputplaintext:"; cin>>m; charc[80]; chard[80]; ISD_Vigenere_crypt(m,k,c); ISD_Vigenere_decrypt(c,k,d); cout<<"明文:"; puts(m); cout<<"密鑰:"; puts(k); cout<<"加密結(jié)果:"; puts(c); cout<<"解密結(jié)果:"; puts(d); gotoloop; } case'e': { return; } case'h': ; { cout<<"輸入v:維吉尼亞加密!\n"; cout<<"輸入h:獲得幫助!\n"; cout<<"輸入e:退出程序!\n"; gotoloop; } default: gotoloop; }}實驗結(jié)果及分析:測試程序,結(jié)果正確,如下圖所示:明文nomorecountingdollars密鑰bestbestbestbestbestb加密osehsiuhvrlbokvhmpskt解密nomorecountingdollars驗證結(jié)果與輸出一致,正確實驗結(jié)論:維吉尼亞密碼加密方法就是根據(jù)密鑰內(nèi)容,對輸入的明文的字母進行替換,在密鑰長度大于1的情況下,通常來說相同的字母也會由于對應(yīng)的密鑰字符不同而被不同的字符所替換,因此在一定程度上來說保證了加密技術(shù)的安全性,但就是若已知密鑰的長度且有足夠多樣本的情況下,同樣也可以做詞頻分析從而破譯密碼??偨Y(jié)及心得體會:維吉尼亞密碼作為古典密碼中的一種,加密原理簡單易懂,程序?qū)崿F(xiàn)也沒有太大的困難,并且在密鑰長度較長時加密安全性也可以有一定保證,較難破譯,但用頻率分析法可以破譯已知密鑰長度的密文,因此對于現(xiàn)代技術(shù)來說容易破譯,但通過學(xué)習維吉尼亞密碼學(xué)到了其加密的原理與基于統(tǒng)計破譯密碼的思想,收獲很大。實驗報告學(xué)生姓名李昕宜學(xué)號2指導(dǎo)老師實驗地點N3實驗時間2018/3/20班級一班實驗室名稱:SimpleSPC信息安全云實驗系統(tǒng)實驗項目名稱:古典密碼——代換密碼實驗學(xué)時:1學(xué)時實驗原理:1)單表代換密碼a)加法密碼
A與B就是有n個字母的字母表。
定義一個由A到B的映射:f:A→B
f(ai)=bi=aj
j=i+kmodn
加法密碼就是用明文字母在字母表中后面第k個字母來代替。
K=3時就是著名的凱撒密碼。
愷撒密碼——歷史上第一個密碼技術(shù)
“愷撒密碼”就是古羅馬愷撒大帝在營救西塞羅戰(zhàn)役時用來保護重要軍情的加密系統(tǒng)(《高盧戰(zhàn)記》)。b)乘法密碼
A與B就是有n個字母的字母表。?定義一個由A到B的映射:f:A→Bf(ai)=bi=ajj=ikmodn其中,(n,k)=1。注意:只有(n,k)=1,才能正確解密。c)密鑰詞組代替密碼
隨機選一個詞語,去掉其中的重復(fù)字母,寫到矩陣的第一行,從明文字母表中去掉這第一行的字母,其余字母順序?qū)懭刖仃?。然后按列取出字母?gòu)成密文字母表2)多表代換密碼
單表代替密碼的安全性不高,一個原因就是一個明文字母只由一個密文字母代替??梢岳妙l率分析來破譯。故產(chǎn)生了更為安全的多表代換密碼,即構(gòu)造多個密文字母表,在密鑰的控制下用以一系列代換表依次對明文消息的字母序列進行代換。著名的多表代替密碼有Vigenere密碼等。a)Vernam密碼
明文、密文、密鑰都表示為二進制位:
M=m1,m2,…,mnK=k1,k2,…,knC=c1,c2,…,cnb)Playfair密碼
用密鑰控制生成矩陣,然后每兩個字母為單位進行代換。c)Hill密碼(乘積密碼)
建立在矩陣相乘的基礎(chǔ)上,但不能抵抗已知明文攻擊。實驗?zāi)康?學(xué)習代換密碼的原理2)學(xué)習代換密碼的算法實現(xiàn)實驗內(nèi)容:1、在虛擬機上運行代換密碼、exe可執(zhí)行文件,根據(jù)提示輸入明文與密鑰,同時輸入之前得到的密文與密鑰檢查輸出的解密后的結(jié)果就是否與明文一致。2、學(xué)習掌握代換密碼的基本思想,了解其分類與不同代換密碼之間的區(qū)別與共同點,并根據(jù)明文與密鑰計算出對應(yīng)的加密文,并與程序輸出的結(jié)果進行比對,掌握其加密解密的過程。3、瞧懂實驗程序代碼,如有需要可在其上進行優(yōu)化。實驗器材(設(shè)備、虛擬機名稱):Window7工具:C:\tools\密碼學(xué)課程\01密碼學(xué)算法\02古典密碼\04代換密碼實驗步驟:一、查瞧代換密碼算法運行結(jié)果并學(xué)習核心算法1、1
運行可執(zhí)行程序,結(jié)果如下(注意:這里輸入的字符串位數(shù)最多不超過5個)。如圖1所示圖11、2源碼閱讀在實驗中發(fā)現(xiàn)提供的源碼與代換密碼、exe文件無法對應(yīng),因此我根據(jù)可執(zhí)行文件進行試驗觀察發(fā)現(xiàn),程序就是將待加密明文中的每一個字符的ASCII碼與密鑰的值相加,加密結(jié)果就就是ASCII碼與對應(yīng)的字符,根據(jù)這個思路寫的程序如下所示:#include<string>#include<iostream>usingnamespacestd;intmain(){ cout<<"請輸入待加密的明文:"<<endl; stringm; charc[10]=""; intk; cin>>m; cout<<"請輸入密鑰:"<<endl; cin>>k; inti=0; for(;i<m、length();i++){ c[i]=m[i]+k; } c[i]='\n'; cout<<"密文為:"<<endl<<c<<endl<<"請輸入待解密的密文:"<<endl; stringcom; cin>>com; cout<<"請輸入密鑰:"<<endl; cin>>k; cout<<"解密后的明文為:"<<endl; charming[10]=""; i=0; for(;i<com、length();i++){ ming[i]=c[i]-k; } ming[i]='\n'; cout<<ming<<endl; return0;}實驗結(jié)果及分析:測試修改后的程序,結(jié)果正確,如下圖所示:‘d’+20=’x’‘b’+20=’v’‘c’+20=’w’‘a(chǎn)’+20=’u’實驗結(jié)論:在本次實驗中了解到代換密碼分為單表代換密碼與多表代換密碼,其中多表代換密碼中由于用多個代換表進行加密,因此安全性要比單表代換密碼更強。代換密碼的思想就是要首先建立一個代換表(即密鑰),加密時需要將加密的明文依次通過查表,替換為相應(yīng)的字符,明文字符被逐個替換后生成密文,需要注意的就是將代換密碼與置換密碼進行區(qū)分,置換密碼只就是更換明文中字符的順序,只就是進行位置的置換。而之前學(xué)到的維吉尼亞密碼就是代換密碼的一種??偨Y(jié)及心得體會:本次實驗中接觸到的代換密碼我們已經(jīng)很熟悉了,因為維吉尼亞密碼就是多表代換中重要的一種,同時我們還需要將其與之前學(xué)到的置換密碼區(qū)分開,實驗中發(fā)現(xiàn),若將多表代換密碼的技術(shù)與置換密碼的技術(shù)結(jié)合起來得到的加密技術(shù)的安全性應(yīng)該有很高的保證。實驗報告學(xué)生姓名李昕宜學(xué)號2指導(dǎo)老師實驗地點N3實驗時間2018/3/20班級一班實驗室名稱:SimpleSPC信息安全云實驗系統(tǒng)實驗項目名稱:古典密碼——移位密碼實驗學(xué)時:1學(xué)時實驗原理:1)算法原理a)移位密碼就就是對26個字母進行移位操作,可以移動任意位數(shù),這樣就實現(xiàn)了對明文的加密,移位操作簡單易行,因此,加密解密比較簡單。b)移位密碼的基本思想:移位密碼算法c=m+k(mod26),k可以使0<k<26的任意整數(shù)。加密算法:x=x+k(mod26),解密算法x=x-k(mod26)。當K=3,時,為凱撒密碼。2)算法參數(shù)
移位密碼算法主要有c、m、k三個參數(shù)。c為密文,m就是明文,k為密鑰。3)算法流程
算法流程如下。如圖所示實驗?zāi)康?1)學(xué)習移位密碼的原理2)學(xué)習移密碼的實現(xiàn)實驗內(nèi)容:1、在虛擬機上運行移位密碼、exe可執(zhí)行文件,根據(jù)提示輸入明文與密鑰,同時檢查輸出的解密后的結(jié)果就是否與明文一致。2、學(xué)習掌握移位密碼的原理,并根據(jù)明文與密鑰計算出對應(yīng)的加密文,并與程序輸出的結(jié)果進行比對,掌握其加密解密的過程。3、瞧懂實驗程序代碼,如有需要可在其上進行優(yōu)化。實驗器材(設(shè)備、虛擬機名稱):Windows7工具:C:\tools\密碼學(xué)課程\01密碼學(xué)算法\02古典密碼\06移位密碼算法實驗步驟:一、查瞧移位密碼算法運行結(jié)果并學(xué)習核心算法1、1點擊【移位密碼、exe】,選擇【0】對明文進行加密。如圖1所示圖11、2重新運行程序,選擇【1】,對密文進行解密。如圖2所示圖21、3移位密碼的核心算法如下所示。//#include"stdafx、h"#include<iostream>#include"conio、h"#include<string>usingnamespacestd;voidISD_yiwei_Secret(string&code,intk){ inti; for(i=0;i<code、length();i++) { if((code[i]+k)>'z') { code[i]=((code[i]+k)%'z')+'a'-1; } else { code[i]=code[i]+k; } code[i]=code[i]-32; }}voidISD_yiwei
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年一年級下學(xué)期數(shù)學(xué)《總復(fù)習》(教案)
- 六年級下冊數(shù)學(xué)教案-1.4 求比一個數(shù)多(少)百分之幾的數(shù)是多少 青島版
- 六年級上冊數(shù)學(xué)教案-2.2 圓的周長 ︳西師大版
- 學(xué)習2025年雷鋒精神六十二周年主題活動實施方案 (3份)-66
- 數(shù)學(xué)-云南省師范大學(xué)附屬中學(xué)2025屆高三下學(xué)期開學(xué)考試試題和答案
- 2025年度東莞市入學(xué)積分制社區(qū)教育志愿者服務(wù)協(xié)議
- 2025年度交通事故人傷私了協(xié)議(賠償期限與方式)
- 二零二五年度醫(yī)療機構(gòu)與康復(fù)醫(yī)院醫(yī)生合作合同
- 2025年度安保服務(wù)滿意度調(diào)查合同范本
- 二零二五年度白酒品牌授權(quán)區(qū)域代理及市場拓展合同
- 產(chǎn)品手繪設(shè)計表現(xiàn)技法PPT完整全套教學(xué)課件
- GA/T 1988-2022移動警務(wù)即時通信系統(tǒng)功能及互聯(lián)互通技術(shù)要求
- 文科學(xué)術(shù)規(guī)范與學(xué)術(shù)論文寫作課件
- 人教版小學(xué)二年級體育下冊全冊教案
- 農(nóng)業(yè)政策學(xué)PPT完整全套教學(xué)課件
- 國家電網(wǎng)招聘之其他工學(xué)類復(fù)習資料大全
- 天山天池景區(qū)介紹-天山天池景點PPT(經(jīng)典版)
- 電動機潤滑檔案
- 房地產(chǎn) -中建一局成本復(fù)盤案例匯編
- 回延安部編語文名師公開課一等獎教學(xué)設(shè)計課件2
- 正常分娩 第三產(chǎn)程的臨床經(jīng)過及護理
評論
0/150
提交評論