999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RSA文件加密軟件的設(shè)計(jì)與開發(fā)

2014-12-13 12:16:26趙鑫

趙鑫

摘要:RSA公鑰加密算法當(dāng)今十分受歡迎,它的特點(diǎn)就是能夠?qū)嵲跀?shù)據(jù)加密的,同時(shí)在數(shù)字簽名的算法中也得到了廣泛的應(yīng)用。更主要的是軟件更容易操作與理解。本文首先對(duì)RSA算法的現(xiàn)狀進(jìn)行分析,進(jìn)一步論述文件加密應(yīng)用RSA算法的可行性和意義。對(duì)RSA算法深入研究,設(shè)計(jì)出一套非常實(shí)用的加密文件解決方案,從常規(guī)RSA算法出發(fā),用C++實(shí)現(xiàn)RSA加密算法類庫(kù),在.Net平臺(tái)引用此組件,實(shí)現(xiàn)可以對(duì)任意文件進(jìn)行RSA加密操作的窗體應(yīng)用程序。

關(guān)鍵詞:RSA RSA算法 文件加密 加密成文本

中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)08-0173-03

1 RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密的分析

1.1 RSA算法介紹與應(yīng)用現(xiàn)狀

RSA算法已經(jīng)有二十年的歷史,它通過了各種破解的考驗(yàn),如今,已廣泛的被人們所接受,被公認(rèn)為是最佳的分鑰之一,RSA算法它主要分為三個(gè)部份,加密、解密數(shù)據(jù)和生成RSA密鑰,是公鑰密碼算法最為容易理解與操作的一種,RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià)。

1.2 RSA應(yīng)用于文件加密的分析

(1)文件加密使用RSA的可行性;如今,RSA技術(shù)一般在一些小數(shù)據(jù)方面的加密解密得到廣泛應(yīng)用,例如,數(shù)字證書和簽名。這是因?yàn)镽SA算法加密在過程中速度非常慢,和速度非常快的DES對(duì)稱密鑰加密技術(shù)相比,只是它的千分之一而已。所以,在一些普通文件加密方面一直沒有得到重視,現(xiàn)在由于PC性能的快速發(fā)展,即使RSA加密運(yùn)算速度不是很快,但對(duì)于一個(gè)幾千字節(jié)的數(shù)據(jù)做出幾百位的加密這一特點(diǎn),所以在時(shí)間消耗方面還是可以被人們所能接受的。(2)RSA文件加密的意義;RSA在被廣泛的應(yīng)用中,它的安全性得到了大量事實(shí)的證明,技術(shù)方面也同時(shí)日趨成熟,因此,人們對(duì)RSA技術(shù)也越來越重視。但在RSA加密文件時(shí),它的算法之中含有大數(shù)的乘方運(yùn)算,而計(jì)算機(jī)要消耗太多的時(shí)間去運(yùn)算這些數(shù)據(jù),加密的效率會(huì)受到很大程度的影響,嚴(yán)重的限制了它的普遍利用。如今,人們正在對(duì)如何提高RSA的運(yùn)算速度做為重點(diǎn)研究對(duì)象,具有十分現(xiàn)實(shí)意義。

2 RSA文件加密軟件的設(shè)計(jì)與實(shí)現(xiàn)

2.1 RSA文件加密軟件的設(shè)計(jì)

2.1.1 功能分析

將對(duì)軟件的要求總結(jié)如下:

(1)對(duì)軟件界面要求簡(jiǎn)潔明了,操作容易。(2)設(shè)計(jì)中要完成非對(duì)稱密鑰。(3)加密之后自動(dòng)生成的數(shù)據(jù)格式為純文本。(4)對(duì)加密過的文件可以做到安裝與卸載。并能還原文件。(5)密鑰和裝載密鑰進(jìn)行保存。根據(jù)功能分析后,得出Use Case和Statechart流程。(見圖1)

2.1.2 工程方案選擇

工程設(shè)計(jì)方案選用了比較穩(wěn)妥的方法----分層設(shè)計(jì)。因?yàn)檫@一方法具有可維護(hù)性、復(fù)用性及執(zhí)行效率這一特點(diǎn)。用C++類庫(kù)來實(shí)現(xiàn)RSA算法最核心的部份,運(yùn)用這種開發(fā)方式,最底層集中了整個(gè)設(shè)計(jì)的核心功能,在不斷的封裝中針對(duì)具體環(huán)境對(duì)組件功能不斷擴(kuò)充,任意一個(gè)層面的封裝都可以被直接應(yīng)用到其他項(xiàng)目,但是每一層都需要依賴底層的所有組件。下圖2 分別介紹了層設(shè)計(jì)的優(yōu)點(diǎn)。

在整個(gè)設(shè)計(jì)過程中,工程分四層,分別為RSA加密算法的C++核心類庫(kù)、封裝C++核心類庫(kù)的DLL組件、引用DLL的.Net類、實(shí)現(xiàn)文件操作功能的.Net窗體應(yīng)用程序。上層使用C#,底層算法使用C++,可以由一個(gè)Visual Studio解決方案管理,給調(diào)試帶來極大的方便。

2.2 RSA文件加密軟件部分的設(shè)計(jì)與開發(fā)

2.2.1 大數(shù)冪模與乘模運(yùn)算·Montgomery冪模算法

的情況下。整個(gè)設(shè)計(jì)需要實(shí)現(xiàn)vlong類型,這樣大部份的四則運(yùn)算和存儲(chǔ)功能就基本完成。但在RSA算法之中要加入冪模運(yùn)算,要完成這一運(yùn)算,需要寫入一個(gè)vlong的友元,在RSA算法之中,冪模運(yùn)算直接決定它的性能,所以在整個(gè)設(shè)計(jì)之中最為重要的運(yùn)算之一,西方學(xué)者針對(duì)冪模運(yùn)算提出了多種解決辦法,發(fā)現(xiàn)都是通過乘模的分解性質(zhì),先將冪模運(yùn)算轉(zhuǎn)化為乘模運(yùn)算。

一般情況下。分解指的是將指數(shù)分為對(duì)半,如果需要分解的指數(shù)是奇數(shù)。那就需要減去一半,將其變成偶數(shù),之后再對(duì)指數(shù)進(jìn)行分半處理,,例如求D=,E=15,可分解為如下6個(gè)乘模運(yùn)算。

根據(jù)上述辦法進(jìn)行分析,對(duì)于任意指數(shù)E,見下面圖3流程圖進(jìn)行分析。

在本次設(shè)計(jì)之中,運(yùn)用的乘模算法是M(A*B,它做為RSA核心運(yùn)算,但它并非是RSA想要的真正運(yùn)算結(jié)果,還需要在冪模算法中進(jìn)行二次修改,這樣的話就可以在乘模算法之中正常計(jì)算了。在設(shè)計(jì)過程中,最初時(shí)并沒有運(yùn)用Montgomery 乘模算法,速度一定沒有Montgomery乘模算法快,但加密整度相差并不大。此次設(shè)計(jì)中結(jié)合冪模算法,最后形成標(biāo)準(zhǔn)Montgomery冪模算法,代碼如下:

在具體的實(shí)現(xiàn)中,使用的時(shí)候直接調(diào)用modexp即可。

2.2.2 核心類庫(kù)綜述

在實(shí)現(xiàn)RSA加密算法之中,所運(yùn)用的C++核心類庫(kù)是由6個(gè)類組成而成,類名和對(duì)應(yīng)的功能如表1。

類之間的關(guān)系如圖4。

在設(shè)計(jì)核心類為時(shí)應(yīng)用了輾轉(zhuǎn)相除法求最大公約數(shù)的函數(shù)gcd、解同余方程的函數(shù)modinv等。這些在程序之中并不歸類于任何全局函數(shù),通常情況下,設(shè)計(jì)之中并不應(yīng)該出現(xiàn)類以外的函數(shù)。但這些函數(shù)頻繁的被使用,設(shè)計(jì)時(shí)也考慮到要置于全局,機(jī)器的效率等因素,所以并沒有另行進(jìn)行包裝。

2.2.3 引用DLL的.Net類與實(shí)現(xiàn)文件操作功能的窗體應(yīng)用程序

在C#編寫的.Net類里,使用特性[DllImport("sanpack_rsa.dll")]引用C接口的DLL組件。類中接口DLL的函數(shù)都以靜態(tài)成員的方式對(duì)外公開,其他.Net程序可以直接使用。在類庫(kù)中還提供了任意長(zhǎng)度隨機(jī)串的生成函數(shù),此函數(shù)用于生成尋找素?cái)?shù)的大數(shù)起點(diǎn)。endprint

文件操作使用.Net基礎(chǔ)類庫(kù)中的System.IO中的類實(shí)現(xiàn)。一般因?yàn)槲募僮魇趾?jiǎn)單,用流輸入輸出的方式包裝完成,程序中將文件操作直接放在菜單項(xiàng)關(guān)聯(lián)的事件處理函數(shù)中。

窗體等圖形操作界面直接由Visual Studio的所見即所得的方式完成,不需要編碼實(shí)現(xiàn)。

最終實(shí)現(xiàn)的應(yīng)用程序,結(jié)構(gòu)如圖5所示。

3 性能分析與改進(jìn)優(yōu)化

根據(jù)對(duì)此軟件的測(cè)試,軟件需要對(duì)以下幾點(diǎn)進(jìn)一步改進(jìn)和優(yōu)化。

(1)在要對(duì)文件進(jìn)行加密解密的時(shí)候,先將文件按一定的數(shù)據(jù)結(jié)構(gòu)讀入內(nèi)存,然后進(jìn)行加密或解密操作。運(yùn)算數(shù)據(jù)都讀取自內(nèi)存。(2)在對(duì)加密或解密完成的數(shù)據(jù)進(jìn)行寫出的時(shí)候,都是將其直接寫到指定好的文件,即直接寫入磁盤。這是因?yàn)椋紤]到中途可能因?yàn)橐馔鈹嚯姷仍蛞鸩僮髦袛啵瑸榱吮Wo(hù)已經(jīng)花費(fèi)時(shí)間運(yùn)算完成的數(shù)據(jù),將其直接寫入磁盤。(3)在關(guān)鍵算法上做進(jìn)一步優(yōu)化,例如在尋找素?cái)?shù)時(shí),素?cái)?shù)測(cè)試使用更快速的算法;還有3.3節(jié)提到的,在用私有密鑰進(jìn)行冪模運(yùn)算時(shí)使用中國(guó)余數(shù)定理等。(4)對(duì)C++核心類庫(kù)進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

4 結(jié)語(yǔ)

本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語(yǔ)言,設(shè)計(jì)了一個(gè)加密程序,該軟件不拘泥于花俏的界面,僅使用了一個(gè)簡(jiǎn)單的對(duì)話框,具有簡(jiǎn)單實(shí)用的特點(diǎn)。在該方案的實(shí)現(xiàn)中,由于使用了可靠的密碼學(xué)算法,使軟件加密的強(qiáng)度大大提高。

參考文獻(xiàn)

[1]菲菲.利用Windows7中的自帶功能實(shí)現(xiàn)U盤加密[J].網(wǎng)絡(luò)與信息,2010(1).

[2]包奇金寶,張景龍.使用PCTOOLS輕松破解高強(qiáng)度加密大師[J].科技創(chuàng)新導(dǎo)報(bào),2009(33).

[3]夏云程.企業(yè)辦公系統(tǒng)的信息安全及控制措施[J].現(xiàn)代經(jīng)濟(jì)信息,2008(11).

[4]Heather Clancy,梁曉平.破解數(shù)據(jù)加密難題[J].創(chuàng)業(yè)邦,2010(5).

[5]陳惠風(fēng).小議異或算法實(shí)現(xiàn)外殼加密的程序設(shè)計(jì)[J].中小企業(yè)管理與科技(下旬刊),2009(10).endprint

文件操作使用.Net基礎(chǔ)類庫(kù)中的System.IO中的類實(shí)現(xiàn)。一般因?yàn)槲募僮魇趾?jiǎn)單,用流輸入輸出的方式包裝完成,程序中將文件操作直接放在菜單項(xiàng)關(guān)聯(lián)的事件處理函數(shù)中。

窗體等圖形操作界面直接由Visual Studio的所見即所得的方式完成,不需要編碼實(shí)現(xiàn)。

最終實(shí)現(xiàn)的應(yīng)用程序,結(jié)構(gòu)如圖5所示。

3 性能分析與改進(jìn)優(yōu)化

根據(jù)對(duì)此軟件的測(cè)試,軟件需要對(duì)以下幾點(diǎn)進(jìn)一步改進(jìn)和優(yōu)化。

(1)在要對(duì)文件進(jìn)行加密解密的時(shí)候,先將文件按一定的數(shù)據(jù)結(jié)構(gòu)讀入內(nèi)存,然后進(jìn)行加密或解密操作。運(yùn)算數(shù)據(jù)都讀取自內(nèi)存。(2)在對(duì)加密或解密完成的數(shù)據(jù)進(jìn)行寫出的時(shí)候,都是將其直接寫到指定好的文件,即直接寫入磁盤。這是因?yàn)椋紤]到中途可能因?yàn)橐馔鈹嚯姷仍蛞鸩僮髦袛啵瑸榱吮Wo(hù)已經(jīng)花費(fèi)時(shí)間運(yùn)算完成的數(shù)據(jù),將其直接寫入磁盤。(3)在關(guān)鍵算法上做進(jìn)一步優(yōu)化,例如在尋找素?cái)?shù)時(shí),素?cái)?shù)測(cè)試使用更快速的算法;還有3.3節(jié)提到的,在用私有密鑰進(jìn)行冪模運(yùn)算時(shí)使用中國(guó)余數(shù)定理等。(4)對(duì)C++核心類庫(kù)進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

4 結(jié)語(yǔ)

本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語(yǔ)言,設(shè)計(jì)了一個(gè)加密程序,該軟件不拘泥于花俏的界面,僅使用了一個(gè)簡(jiǎn)單的對(duì)話框,具有簡(jiǎn)單實(shí)用的特點(diǎn)。在該方案的實(shí)現(xiàn)中,由于使用了可靠的密碼學(xué)算法,使軟件加密的強(qiáng)度大大提高。

參考文獻(xiàn)

[1]菲菲.利用Windows7中的自帶功能實(shí)現(xiàn)U盤加密[J].網(wǎng)絡(luò)與信息,2010(1).

[2]包奇金寶,張景龍.使用PCTOOLS輕松破解高強(qiáng)度加密大師[J].科技創(chuàng)新導(dǎo)報(bào),2009(33).

[3]夏云程.企業(yè)辦公系統(tǒng)的信息安全及控制措施[J].現(xiàn)代經(jīng)濟(jì)信息,2008(11).

[4]Heather Clancy,梁曉平.破解數(shù)據(jù)加密難題[J].創(chuàng)業(yè)邦,2010(5).

[5]陳惠風(fēng).小議異或算法實(shí)現(xiàn)外殼加密的程序設(shè)計(jì)[J].中小企業(yè)管理與科技(下旬刊),2009(10).endprint

文件操作使用.Net基礎(chǔ)類庫(kù)中的System.IO中的類實(shí)現(xiàn)。一般因?yàn)槲募僮魇趾?jiǎn)單,用流輸入輸出的方式包裝完成,程序中將文件操作直接放在菜單項(xiàng)關(guān)聯(lián)的事件處理函數(shù)中。

窗體等圖形操作界面直接由Visual Studio的所見即所得的方式完成,不需要編碼實(shí)現(xiàn)。

最終實(shí)現(xiàn)的應(yīng)用程序,結(jié)構(gòu)如圖5所示。

3 性能分析與改進(jìn)優(yōu)化

根據(jù)對(duì)此軟件的測(cè)試,軟件需要對(duì)以下幾點(diǎn)進(jìn)一步改進(jìn)和優(yōu)化。

(1)在要對(duì)文件進(jìn)行加密解密的時(shí)候,先將文件按一定的數(shù)據(jù)結(jié)構(gòu)讀入內(nèi)存,然后進(jìn)行加密或解密操作。運(yùn)算數(shù)據(jù)都讀取自內(nèi)存。(2)在對(duì)加密或解密完成的數(shù)據(jù)進(jìn)行寫出的時(shí)候,都是將其直接寫到指定好的文件,即直接寫入磁盤。這是因?yàn)椋紤]到中途可能因?yàn)橐馔鈹嚯姷仍蛞鸩僮髦袛啵瑸榱吮Wo(hù)已經(jīng)花費(fèi)時(shí)間運(yùn)算完成的數(shù)據(jù),將其直接寫入磁盤。(3)在關(guān)鍵算法上做進(jìn)一步優(yōu)化,例如在尋找素?cái)?shù)時(shí),素?cái)?shù)測(cè)試使用更快速的算法;還有3.3節(jié)提到的,在用私有密鑰進(jìn)行冪模運(yùn)算時(shí)使用中國(guó)余數(shù)定理等。(4)對(duì)C++核心類庫(kù)進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

4 結(jié)語(yǔ)

本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語(yǔ)言,設(shè)計(jì)了一個(gè)加密程序,該軟件不拘泥于花俏的界面,僅使用了一個(gè)簡(jiǎn)單的對(duì)話框,具有簡(jiǎn)單實(shí)用的特點(diǎn)。在該方案的實(shí)現(xiàn)中,由于使用了可靠的密碼學(xué)算法,使軟件加密的強(qiáng)度大大提高。

參考文獻(xiàn)

[1]菲菲.利用Windows7中的自帶功能實(shí)現(xiàn)U盤加密[J].網(wǎng)絡(luò)與信息,2010(1).

[2]包奇金寶,張景龍.使用PCTOOLS輕松破解高強(qiáng)度加密大師[J].科技創(chuàng)新導(dǎo)報(bào),2009(33).

[3]夏云程.企業(yè)辦公系統(tǒng)的信息安全及控制措施[J].現(xiàn)代經(jīng)濟(jì)信息,2008(11).

[4]Heather Clancy,梁曉平.破解數(shù)據(jù)加密難題[J].創(chuàng)業(yè)邦,2010(5).

[5]陳惠風(fēng).小議異或算法實(shí)現(xiàn)外殼加密的程序設(shè)計(jì)[J].中小企業(yè)管理與科技(下旬刊),2009(10).endprint

主站蜘蛛池模板: 欧美日韩第三页| 无码网站免费观看| 日本人又色又爽的视频| 久久精品这里只有精99品| 真人高潮娇喘嗯啊在线观看| 国产白浆视频| 台湾AV国片精品女同性| 亚洲永久免费网站| 制服丝袜一区| 免费黄色国产视频| 蜜芽一区二区国产精品| 国产丝袜一区二区三区视频免下载| 国产h视频在线观看视频| 亚洲高清在线播放| 久久久久久尹人网香蕉| 国产无人区一区二区三区| 曰韩免费无码AV一区二区| 激情无码视频在线看| 亚洲色欲色欲www在线观看| 欧美精品影院| 人人艹人人爽| 欧美成人区| 97影院午夜在线观看视频| 国产综合在线观看视频| 亚洲国产理论片在线播放| 日韩欧美中文字幕在线精品| 无码高潮喷水专区久久| 欧美a网站| 亚瑟天堂久久一区二区影院| 成人自拍视频在线观看| 国产精品理论片| 免费全部高H视频无码无遮掩| 中文字幕在线欧美| 91久久国产综合精品女同我| 午夜小视频在线| 亚洲综合二区| 自拍欧美亚洲| 91精品啪在线观看国产| 亚洲午夜综合网| 一区二区影院| 无码精品国产VA在线观看DVD| 综合人妻久久一区二区精品| 亚洲精品少妇熟女| 在线观看国产小视频| 狠狠色噜噜狠狠狠狠色综合久| 丰满的少妇人妻无码区| a毛片免费观看| 亚洲嫩模喷白浆| 亚洲成人精品在线| 国产青榴视频| 久久夜色精品国产嚕嚕亚洲av| 粗大猛烈进出高潮视频无码| 亚洲综合专区| 国产一级裸网站| 日韩欧美中文字幕在线精品| 伊人婷婷色香五月综合缴缴情| 91福利免费| 精品第一国产综合精品Aⅴ| 不卡色老大久久综合网| 国产成人精品高清在线| 在线欧美日韩| 亚洲天堂视频在线免费观看| 国产精品太粉嫩高中在线观看| 色婷婷色丁香| 亚洲狼网站狼狼鲁亚洲下载| 第九色区aⅴ天堂久久香| 亚洲九九视频| 91精品啪在线观看国产| 青青草国产免费国产| 国产精品午夜电影| 99国产在线视频| 成人国产精品2021| 亚洲成人动漫在线| 国产成人精品一区二区免费看京| 国产精品yjizz视频网一二区| 亚洲人成网站观看在线观看| 亚洲综合狠狠| 久久久久国产一区二区| 日韩东京热无码人妻| 在线观看亚洲成人| 欧美精品啪啪一区二区三区| 久久精品亚洲专区|