亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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加密算法類庫,在.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算法加密在過程中速度非常慢,和速度非??斓腄ES對(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++類庫來實(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++核心類庫、封裝C++核心類庫的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 核心類庫綜述

        在實(shí)現(xiàn)RSA加密算法之中,所運(yùn)用的C++核心類庫是由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程序可以直接使用。在類庫中還提供了任意長(zhǎng)度隨機(jī)串的生成函數(shù),此函數(shù)用于生成尋找素?cái)?shù)的大數(shù)起點(diǎn)。endprint

        文件操作使用.Net基礎(chǔ)類庫中的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)橐馔鈹嚯姷仍蛞鸩僮髦袛?,為了保護(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í)使用中國余數(shù)定理等。(4)對(duì)C++核心類庫進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

        4 結(jié)語

        本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語言,設(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ǔ)類庫中的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í)使用中國余數(shù)定理等。(4)對(duì)C++核心類庫進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

        4 結(jié)語

        本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語言,設(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ǔ)類庫中的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í)使用中國余數(shù)定理等。(4)對(duì)C++核心類庫進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類之間的組織細(xì)節(jié)、各程序模塊的具體編寫等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的for循環(huán)展開等。

        4 結(jié)語

        本文分析了利用文件夾的加密來實(shí)現(xiàn)對(duì)文件或程序的保護(hù)方案。采用了“對(duì)稱式”加密技術(shù)即采用文件逐字節(jié)與密碼異或方式對(duì)文件或可執(zhí)行程序加密。選用C++編程語言,設(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

        中文字幕久久国产精品| 国产精品一区二区 尿失禁| 8av国产精品爽爽ⅴa在线观看| 精品女同一区二区三区在线播放器| 久久精品国产av麻豆五月丁| 亚洲av综合色一区二区| a级毛片免费观看在线播放| 亚洲日本一区二区一本一道| 成人片黄网站色大片免费观看cn| 日韩精品成人一区二区三区| 丰满少妇人妻无码超清 | 免费人成网站在线观看欧美| 美女裸体自慰在线观看| 免费在线观看亚洲视频| 国产亚洲精品av一区| 三叶草欧洲码在线| 免费一级毛片麻豆精品| 色婷婷精久久品蜜臀av蜜桃| 国产香蕉视频在线播放| 亚洲性无码一区二区三区| 风间由美性色一区二区三区| 精品不卡久久久久久无码人妻 | 杨幂二区三区免费视频| 精品国产一区二区三区三级| 波多野结衣久久精品99e| 亚洲国产成人精品女人久久久| 国产亚洲av手机在线观看| 中文字幕日韩有码在线| 欧美bbw极品另类| 国产成人综合一区二区三区| 青青草国内视频在线观看| 国产一区二区三区口爆在线| 日本h片中文字幕在线| 亚洲av无码一区二区三区乱子伦| 香蕉视频在线观看国产| 中文字幕久区久久中文字幕| 美女露出粉嫩小奶头在视频18禁| 精品人妻午夜一区二区三区四区 | 国产女人高潮视频在线观看| 国产精品久久国产三级国电话系列| 青青操视频手机在线免费观看|