国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)文件的傳輸方法與流程

      文檔序號(hào):12490860閱讀:597來(lái)源:國(guó)知局

      本發(fā)明屬于計(jì)算機(jī)和網(wǎng)絡(luò)領(lǐng)域,涉及網(wǎng)絡(luò)上的數(shù)據(jù)傳輸,尤其涉及一種數(shù)據(jù)文件的傳輸方法。



      背景技術(shù):

      近年來(lái),隨著計(jì)算機(jī)和網(wǎng)絡(luò)的普及,個(gè)人用戶之間、企業(yè)之間的信息交流大量地轉(zhuǎn)移到互聯(lián)網(wǎng)上進(jìn)行,通過(guò)互聯(lián)網(wǎng)完成雙方的數(shù)據(jù)交換。一個(gè)典型的需求是在互聯(lián)網(wǎng)的兩方之間傳輸某個(gè)數(shù)據(jù)文件,例如word文檔、PDF文檔等等。

      現(xiàn)有技術(shù)中,網(wǎng)絡(luò)上數(shù)據(jù)文件的傳輸有多種方法,直接的文件傳輸方法例如有FTP文件傳輸協(xié)議、SCP安全拷貝等等,間接的數(shù)據(jù)文件傳輸方法例如可以通過(guò)電子郵件傳輸、網(wǎng)盤(pán)轉(zhuǎn)存等等。但是,現(xiàn)有的文件傳輸方法或者過(guò)于復(fù)雜,文件傳輸效率低,或者需要借助別的網(wǎng)絡(luò)工具或網(wǎng)絡(luò)服務(wù),或者安全性不足。

      對(duì)于現(xiàn)有技術(shù)的上述缺點(diǎn),還沒(méi)有一種完善的解決方案。



      技術(shù)實(shí)現(xiàn)要素:

      為了解決現(xiàn)有技術(shù)中的上述問(wèn)題,本發(fā)明提出了一種數(shù)據(jù)文件的傳輸方法。

      本發(fā)明采用的技術(shù)方案如下:

      一種數(shù)據(jù)文件的傳輸方法,該方法包括如下步驟:

      (1)發(fā)送端與接收端建立連接后,發(fā)送端生成一個(gè)隨機(jī)數(shù)a,并且計(jì)算初始加密密鑰K=ga mod P,同時(shí)接收端也生成一個(gè)隨機(jī)數(shù)b,并計(jì)算Y=gb mod P。其中,P為素?cái)?shù),g是P的一個(gè)本原元,K的長(zhǎng)度為L(zhǎng);

      (2)接收端將Y發(fā)送給發(fā)送端,發(fā)送端計(jì)算X=Y(jié)amod P,并將X發(fā)送給接收端;

      (3)接收端計(jì)算該K’=K;

      (4)發(fā)送端將待傳輸?shù)臄?shù)據(jù)文件分為N塊,記為F1,F(xiàn)2,……,F(xiàn)N,每塊的長(zhǎng)度為mL,m為整數(shù),最后一塊的長(zhǎng)度如果不足,則通過(guò)在塊最后增加隨機(jī)數(shù)來(lái)補(bǔ)足長(zhǎng)度;

      (5)發(fā)送端組裝一個(gè)文件信息包={File,N,mL}。其中File是待傳輸數(shù)據(jù)文件的文件信息;

      (6)發(fā)送端計(jì)算該數(shù)據(jù)文件的第一個(gè)分塊的哈希值Hash(F1),設(shè)哈希值的長(zhǎng)度為h,則在哈希值后補(bǔ)上長(zhǎng)度為L(zhǎng)-h的隨機(jī)數(shù)R1,獲得新的長(zhǎng)度為L(zhǎng)的密鑰K1;其中Hash是一個(gè)哈希算法;

      (7)設(shè)文件信息包的長(zhǎng)度為L(zhǎng)0,則將文件信息包與K的前L0位進(jìn)行異或,得到異或結(jié)果XF;然后發(fā)送端組裝一個(gè)初始信息包={K1⊕K,XF,HF},將該初始信息包括發(fā)送給接收端。其中HF是文件信息包和K1的哈希值;

      (8)接收端使用K解密該初始信息包,獲得K1和文件信息包,并使用HF進(jìn)行哈希校驗(yàn),如果校驗(yàn)不通過(guò),則請(qǐng)求發(fā)送端重發(fā)該初始信息包直到校驗(yàn)通過(guò),如果校驗(yàn)通過(guò),則接收端告知發(fā)送端已準(zhǔn)備好接收該數(shù)據(jù)文件;

      (9)發(fā)送端設(shè)置循環(huán)變量i=1;

      (10)發(fā)送端組裝第i個(gè)文件包Bi,如果i<N,則令Bi={Fi,Ki+1},Ki+1={Hash(Fi+1),Ri+1},如果i=N,則Bi=Fi;其中Ri+1是一個(gè)長(zhǎng)度為L(zhǎng)-h隨機(jī)數(shù);

      (11)發(fā)送端使用密鑰Ki加密第i個(gè)文件包,即計(jì)算Ei=E(Ki,Bi),其中E是加密算法;

      (12)發(fā)送端將Ei和Hash(Bi)發(fā)送給接收端,接收端對(duì)Ei解密,獲得Bi;如果i<N,則接收端就從Bi中獲得Fi和Ki+1,從Ki+1中獲得Hash(Fi+1);如果i=N,則接收端只獲得Fi;

      (13)接收端使用Hash(Bi)對(duì)Bi進(jìn)行哈希值校驗(yàn),同時(shí)使用Hash(Fi)對(duì)Fi進(jìn)行哈希值校驗(yàn),如果有一個(gè)校驗(yàn)沒(méi)通過(guò),則接收端請(qǐng)求發(fā)送端重新發(fā)送直至校驗(yàn)通過(guò);

      (14)如果i<N,則令i增加1,并返回步驟(10),否則繼續(xù)下述步驟;

      (15)接收端合并接收到的所有Fi,獲得數(shù)據(jù)文件。

      進(jìn)一步地,所述步驟(11)中的機(jī)密算法E采用如下的鏈?zhǔn)疆惢蚍ǎ?/p>

      (11.1)將Bi分成多個(gè)長(zhǎng)度為L(zhǎng)的塊,設(shè)共有S塊;

      (11.2)設(shè)Bi分成的S塊為A1,A2,……,AS,鏈?zhǔn)疆惢虻挠?jì)算過(guò)程如下:

      C1=A1⊕Ki

      Cj=Cj-1⊕Aj⊕Ki,2≤j≤S;

      (11.3)鏈?zhǔn)疆惢虻慕Y(jié)果Ei={C1,,C2,……,CS}。

      進(jìn)一步地,所述步驟(12)中的解密過(guò)程如下:

      (12.1)將需要解密的Ei分成S個(gè)長(zhǎng)度為L(zhǎng)的塊,即C1,,C2,……,CS;

      (12.2)按照下述公式進(jìn)行鏈?zhǔn)疆惢蚪饷埽?/p>

      A1=C1⊕Ki

      Aj=Cj⊕Cj-1⊕Ki,2≤j≤S

      (12.3)鏈?zhǔn)疆惢蚪饷芙Y(jié)果Bi={A1,A2,……,AS}。

      進(jìn)一步地,使用的哈希算法都是MD5算法。

      進(jìn)一步地,所述文件信息包括文件名和文件長(zhǎng)度。

      進(jìn)一步地,P和K的長(zhǎng)度都為1024位。

      本發(fā)明的有益效果包括:在不影響數(shù)據(jù)文件傳輸效率的情況下,大大加強(qiáng)了傳輸?shù)陌踩浴?/p>

      【附圖說(shuō)明】

      此處所說(shuō)明的附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,但并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定,在附圖中:

      圖1是本發(fā)明方法所應(yīng)用的系統(tǒng)結(jié)構(gòu)圖。

      【具體實(shí)施方式】

      下面將結(jié)合附圖以及具體實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明,其中的示意性實(shí)施例以及說(shuō)明僅用來(lái)解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。

      參見(jiàn)附圖1,本發(fā)明涉及兩點(diǎn)之間的數(shù)據(jù)文件傳輸,分別包括發(fā)送端和接收端,兩者之間通過(guò)網(wǎng)絡(luò)連接,目的是通過(guò)該網(wǎng)絡(luò)將數(shù)據(jù)文件從發(fā)送端傳輸?shù)浇邮斩恕1景l(fā)明的數(shù)據(jù)文件傳輸方法的第一個(gè)考慮是安全性,因而文件在傳輸過(guò)程中應(yīng)當(dāng)是加密的,并且,為了具有普適性,本發(fā)明的發(fā)送端和接收端可以在無(wú)需事先協(xié)商的情況下,完成數(shù)據(jù)文件的加密傳輸;第二個(gè)考慮是傳輸?shù)男?,但是加密傳輸一般?huì)降低傳輸?shù)男?,因而本發(fā)明采用了一個(gè)簡(jiǎn)單有效地加密方法,在保證足夠加密強(qiáng)度的基礎(chǔ)上,對(duì)傳輸效率的影響很??;第三個(gè)考慮是傳輸?shù)目煽啃院腿蒎e(cuò)性,本發(fā)明通過(guò)將文件分塊傳輸,使得即使少數(shù)文件塊在傳輸過(guò)程中損壞,也可以進(jìn)行文件塊重傳,不會(huì)對(duì)整個(gè)傳輸帶來(lái)太大的影響;第四個(gè)考慮文件的完整性,本發(fā)明通過(guò)對(duì)文件塊的哈希值校驗(yàn)來(lái)解決完整性問(wèn)題。并且,本發(fā)明的數(shù)據(jù)文件傳輸方法有機(jī)地將上述四個(gè)考慮方面結(jié)合在一起,較為完善地解決了數(shù)據(jù)文件傳輸問(wèn)題。

      下面對(duì)本發(fā)明的方法流程進(jìn)行詳細(xì)地說(shuō)明:

      (1)發(fā)送端與接收端建立連接后,發(fā)送端生成一個(gè)隨機(jī)數(shù)a,并且計(jì)算初始加密密鑰K=ga mod P,同時(shí)接收端也生成一個(gè)隨機(jī)數(shù)b,并計(jì)算Y=gb mod P。

      其中,P是一個(gè)大素?cái)?shù),g是P的一個(gè)本原元,為了安全考慮,P的長(zhǎng)度應(yīng)該足夠大,優(yōu)選地,P的長(zhǎng)度為1024位,則K的長(zhǎng)度也為1024位(如果不足1024位,則在前端補(bǔ)零至1024位)

      (2)接收端將Y發(fā)送給發(fā)送端,發(fā)送端計(jì)算X=Y(jié)a mod P,并將X發(fā)送給接收端。

      (3)接收端計(jì)算

      由上述步驟容易推導(dǎo)出,步驟(3)接收端獲得的K’就等于K,因此通過(guò)上述步驟,發(fā)送端和接收端共同擁有了初始加密密鑰K,由于整個(gè)過(guò)程中K都沒(méi)有在網(wǎng)絡(luò)上傳輸,因此即使有黑客監(jiān)聽(tīng)了整個(gè)過(guò)程,也只能獲得X和Y兩個(gè)值,由于離散對(duì)數(shù)計(jì)算的困難性,該黑客實(shí)質(zhì)上無(wú)法在可接受的時(shí)間內(nèi),基于X和Y的值計(jì)算獲得K,因而K獲得了足夠的保密性和安全性。

      (4)發(fā)送端將待傳輸?shù)臄?shù)據(jù)文件分塊,每塊的長(zhǎng)度都是K的長(zhǎng)度的m倍,m為整數(shù),最后一塊的長(zhǎng)度如果不足,則通過(guò)在塊最后增加隨機(jī)數(shù)來(lái)補(bǔ)足長(zhǎng)度。設(shè)該數(shù)據(jù)文件被分成N塊,記為F1,F(xiàn)2,……,F(xiàn)N

      例如,K的長(zhǎng)度為1024位,m=10,則將該數(shù)據(jù)文件以10240位的長(zhǎng)度分塊,如果最后一塊不足10240位,則在最后一塊的后面增加隨機(jī)數(shù),補(bǔ)足至10240位。

      數(shù)據(jù)文件分塊的目的,是為了分塊傳輸,從而將損壞的風(fēng)險(xiǎn)分散,即使傳輸過(guò)程中發(fā)生錯(cuò)誤,也只需要重傳出錯(cuò)的塊,而無(wú)需重傳整個(gè)文件。

      (5)發(fā)送端組裝一個(gè)文件信息包={File,N,mL}。其中File是待傳輸數(shù)據(jù)文件的文件信息,包括文件名,文件長(zhǎng)度等,N是數(shù)據(jù)文件被分塊的塊數(shù),L是K的長(zhǎng)度,mL就是每個(gè)分塊的長(zhǎng)度。

      (6)發(fā)送端計(jì)算數(shù)據(jù)文件的第一個(gè)分塊的哈希值Hash(F1),設(shè)哈希值的長(zhǎng)度為h,則在哈希值后補(bǔ)上長(zhǎng)度為L(zhǎng)-h的隨機(jī)數(shù)R1,獲得新的長(zhǎng)度為L(zhǎng)的密鑰K1。

      Hash是本發(fā)明采用的哈希算法,優(yōu)選地,本發(fā)明采用MD5的哈希算法,MD5的結(jié)果是128位,K的長(zhǎng)度為1024位,則需要生成一個(gè)1024-128=896位的隨機(jī)數(shù),補(bǔ)在MD5哈希值后面,構(gòu)成新的1024位的密鑰K1,由于新密鑰中不僅有隨機(jī)數(shù),還包括哈希值,進(jìn)一步增強(qiáng)了密鑰的隨機(jī)性,該新密鑰在后面用于對(duì)第一個(gè)文件包的加密。

      (7)設(shè)文件信息包的長(zhǎng)度為L(zhǎng)0,則將文件信息包與K的前L0位進(jìn)行異或,得到異或結(jié)果XF。然后發(fā)送端組裝一個(gè)初始信息包={K1⊕K,XF,HF},將該初始信息包括發(fā)送給接收端。其中HF是文件信息包和K1的哈希值,用于后續(xù)的校驗(yàn)。

      (8)接收端使用K解密該初始信息包,獲得K1和文件信息包,并使用HF進(jìn)行哈希校驗(yàn),如果校驗(yàn)不通過(guò),則請(qǐng)求發(fā)送端重發(fā)該初始信息包直到校驗(yàn)通過(guò),如果校驗(yàn)通過(guò),則接收端告知發(fā)送端已準(zhǔn)備好接收數(shù)據(jù)文件。

      由于接收端在步驟(3)中已經(jīng)獲得了密鑰K,因此可以通過(guò)與初始信息包進(jìn)行異或,解密出K1和文件信息包。哈希校驗(yàn)保證了初始信息包是正確的。另外,由于K1中包括了Hash(F1),因而接收端同時(shí)還獲得了第一個(gè)分塊的哈希值。

      (9)發(fā)送端設(shè)置循環(huán)變量i=1。

      (10)發(fā)送端組裝第i個(gè)文件包Bi,如果i<N(即不是最后一個(gè)文件包),則令Bi={Fi,Ki+1},Ki+1={Hash(Fi+1),Ri+1},如果i=N,則Bi=Fi

      其中,Ri+1是一個(gè)長(zhǎng)度為L(zhǎng)-h的隨機(jī)數(shù),則Ri+1的長(zhǎng)度與Hash(Fi+1)的長(zhǎng)度之和為L(zhǎng),也就是說(shuō),Ki+1的長(zhǎng)度為L(zhǎng),作為下個(gè)文件包的加密密鑰。

      (11)發(fā)送端使用密鑰Ki加密第i個(gè)文件包,即計(jì)算Ei=E(Ki,Bi)。

      本發(fā)明提出了一種新的加密算法E,即鏈?zhǔn)疆惢蚍?,該方法在后面做詳?xì)介紹。

      (12)發(fā)送端將Ei和Hash(Bi)發(fā)送給接收端,接收端對(duì)Ei解密,獲得Bi(具體的解密方法也在后面介紹)。如果i<N,則接收端就從Bi中獲得Fi和Ki+1,從Ki+1中獲得Hash(Fi+1)。如果i=N,則接收端只獲得Fi

      (13)接收端使用Hash(Bi)對(duì)Bi進(jìn)行哈希值校驗(yàn),同時(shí)使用Hash(Fi)對(duì)Fi進(jìn)行哈希值校驗(yàn),通過(guò)雙重哈希值校驗(yàn)對(duì)第i個(gè)文件包的完整性進(jìn)行確認(rèn),如果有一個(gè)校驗(yàn)沒(méi)通過(guò),則接收端請(qǐng)求發(fā)送端重新發(fā)送直至校驗(yàn)通過(guò)。

      從上述步驟可以看出,Hash(Bi)是從本次發(fā)送中獲得的,而Hash(Fi)是從上一個(gè)文件包中獲得的,雙重的不同來(lái)源的哈希校驗(yàn)給黑客攻擊增加了難度。

      (14)如果i<N,則令i增加1,并返回步驟(10),否則繼續(xù)下述步驟。

      (15)接收端合并接收到的所有Fi,獲得數(shù)據(jù)文件。

      如果最后一個(gè)FN被添加了隨機(jī)數(shù),由于文件信息包中有數(shù)據(jù)文件的長(zhǎng)度,因而接收端可以通過(guò)該長(zhǎng)度獲知最后一部分哪些是被添加的隨機(jī)數(shù),因而可以去除該隨機(jī)數(shù)。

      本發(fā)明對(duì)于每個(gè)文件包,使用的都是不同的密鑰Ki,這實(shí)際上起到了一次一密的效果,大大增強(qiáng)了數(shù)據(jù)文件傳輸?shù)陌踩?。而?duì)于步驟(11)中的加密算法,本發(fā)明使用了一種簡(jiǎn)單有效的鏈?zhǔn)疆惢蚍?,具體說(shuō)明如下:

      (11.1)將Bi分成多個(gè)長(zhǎng)度為L(zhǎng)的塊,設(shè)共有S塊。

      當(dāng)i<N時(shí),由于Bi包括Fi和Ki+1,其中Fi的長(zhǎng)度為mL,則S=m+1;當(dāng)i=N時(shí),S=m。

      (11.2)設(shè)Bi分成的S塊為A1,A2,……,AS,鏈?zhǔn)疆惢虻挠?jì)算過(guò)程如下:

      C1=A1⊕Ki

      Cj=Cj-1⊕Aj⊕Ki,2≤j≤S;

      (11.3)鏈?zhǔn)疆惢虻慕Y(jié)果Ei={C1,,C2,……,CS}。

      本發(fā)明提出的鏈?zhǔn)疆惢蚍ㄆ涫褂玫挠?jì)算只有異或,沒(méi)有復(fù)雜的計(jì)算,因此整個(gè)計(jì)算過(guò)程的效率是非常高的,對(duì)數(shù)據(jù)文件的傳輸效率不會(huì)有太大影響。

      鏈?zhǔn)疆惢虻慕饷芤卜浅:?jiǎn)單,具體如下:

      (12.1)將需要解密的Ei分成S個(gè)長(zhǎng)度為L(zhǎng)的塊,即C1,,C2,……,CS

      (12.2)按照下述公式進(jìn)行鏈?zhǔn)疆惢蚪饷埽?/p>

      A1=C1⊕Ki

      Aj=Cj⊕Cj-1⊕Ki,2≤j≤S

      上述鏈?zhǔn)疆惢蚪饷艿倪^(guò)程實(shí)際上可以并行計(jì)算。

      (12.3)鏈?zhǔn)疆惢蚪饷芙Y(jié)果Bi={A1,A2,……,AS}。

      以上所述僅是本發(fā)明的較佳實(shí)施方式,故凡依本發(fā)明專利申請(qǐng)范圍所述的構(gòu)造、特征及原理所做的等效變化或修飾,均包括于本發(fā)明專利申請(qǐng)范圍內(nèi)。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1