亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種混合加密方案在軟件授權(quán)中的應(yīng)用

        2017-07-05 13:07:44商開拴
        電子技術(shù)與軟件工程 2017年12期

        摘 要擁有知識(shí)產(chǎn)權(quán)的軟件一般采取軟件保護(hù)手段,需要使用某種方式激活軟件才可以使用。軟件激活本質(zhì)是對(duì)密文數(shù)據(jù)進(jìn)行比較,而密文數(shù)據(jù)是由軟件開發(fā)商根據(jù)目標(biāo)機(jī)器的特征數(shù)據(jù)進(jìn)行加密產(chǎn)生的。激活過程是在認(rèn)證服務(wù)器或者目標(biāo)機(jī)器上完成,在這個(gè)過程中,數(shù)據(jù)加密方案至關(guān)重要,設(shè)計(jì)良好的加密方案,難以被破解、復(fù)制或盜用,軟件保護(hù)工作做的很完善。本文分析現(xiàn)有軟件保護(hù)方式,借鑒基礎(chǔ)軟件加密算法基礎(chǔ)上,設(shè)計(jì)出一種高強(qiáng)度、難破解的混合加密方案,并在軟件工程實(shí)踐中驗(yàn)證該混合加密方案的可行性。

        【關(guān)鍵詞】MD5算法 BLOWFISH算法 軟件保護(hù) 軟件授權(quán) 硬件特征

        1 軟件保護(hù)

        為了保護(hù)軟件開發(fā)商的權(quán)益,防止軟件被復(fù)制、盜用或未經(jīng)認(rèn)證而非法使用軟件,一般采用軟件授權(quán)方式對(duì)軟件進(jìn)行認(rèn)證激活,只有經(jīng)過認(rèn)證激活的軟件才能正常使用,用戶才能使用軟件提供的各項(xiàng)功能、服務(wù)。隨著軟件普及程度、互聯(lián)網(wǎng)技術(shù)的發(fā)展,軟件的功能模塊越來越多,軟件開發(fā)商希望按照功能模塊來銷售軟件;隨著銷售模式的發(fā)展,用戶希望按照使用時(shí)間、次數(shù)來購買和使用軟件;隨著用戶數(shù)量的增長和軟件版本的增加,軟件開發(fā)商需要更好的管理軟件銷售和使用,因而軟件授權(quán)保護(hù)的研究與應(yīng)用越來越重要。從技術(shù)角度,軟件授權(quán)可以分為在線授權(quán)和離線授權(quán)。

        1.1 在線授權(quán)

        在線授權(quán),是一種新興的、基于認(rèn)證服務(wù)器的授權(quán)方式,以互聯(lián)網(wǎng)技術(shù)為基礎(chǔ),替代傳統(tǒng)的授權(quán)文件、序列號(hào)或激活碼方式。應(yīng)用程序通過開發(fā)商發(fā)放的認(rèn)證碼與認(rèn)證服務(wù)器建立連接,調(diào)用服務(wù)器接口完成授權(quán)過程。在線授權(quán)采用高強(qiáng)度的通信加密技術(shù),并且服務(wù)器遠(yuǎn)離軟件用戶,它的軟件保護(hù)強(qiáng)度非常高。除此之外,應(yīng)用程序在后臺(tái)可以周期訪問認(rèn)證服務(wù)器,為開發(fā)商收集軟件用戶使用狀態(tài)、統(tǒng)計(jì)軟件使用情況、快速升級(jí)與維護(hù)提供了技術(shù)手段。

        1.2 離線授權(quán)

        離線授權(quán)即傳統(tǒng)意義上通過注冊(cè)碼、序列號(hào)、密鑰或者授權(quán)文件,在本地完成應(yīng)用程序激活的方式。通常設(shè)計(jì)實(shí)現(xiàn)上有兩種形式:硬認(rèn)證激活、軟認(rèn)證激活。

        硬認(rèn)證激活需要借助額外硬件設(shè)備,在硬件設(shè)備中存儲(chǔ)應(yīng)用程序激活必須的認(rèn)證數(shù)據(jù),只有認(rèn)證數(shù)據(jù)能被應(yīng)用程序讀取識(shí)別,應(yīng)用程序才可以正常使用。“加密狗”是一種硬認(rèn)證激活方式的一種實(shí)現(xiàn),插在計(jì)算機(jī)USB口或串口上的便攜存儲(chǔ)設(shè)備,早期多為串口形式,現(xiàn)在絕大部分都是USB口形式。

        軟認(rèn)證激活是另外一種軟件認(rèn)證激活形式,通常由軟件開發(fā)商向用戶提供特征數(shù)據(jù)采集工具。用戶在目標(biāo)計(jì)算機(jī)上運(yùn)行該工具,將工具采集的特征數(shù)據(jù)提交給開發(fā)商,開發(fā)商依據(jù)特征數(shù)據(jù)生成激活密鑰、序列號(hào)、激活碼或者授權(quán)文件。用戶再使用開發(fā)商提供的序列號(hào)、激活碼或者授權(quán)文件完成應(yīng)用程序認(rèn)證激活。特征數(shù)據(jù)即工具軟件采集用戶計(jì)算機(jī)產(chǎn)生的硬件特征、軟件特征數(shù)據(jù)。硬件特征數(shù)據(jù)指主板序列號(hào)、磁盤序列號(hào)、物理地址等數(shù)據(jù);軟件特征數(shù)據(jù)指計(jì)算機(jī)名稱、用戶名稱等數(shù)據(jù)。激活密鑰、序列號(hào)、激活碼或者授權(quán)文件都是對(duì)特征數(shù)據(jù)進(jìn)行加密、編碼后產(chǎn)生的。離線認(rèn)證激活方式是現(xiàn)在軟件主流認(rèn)證激活方式。

        2 加密方案設(shè)計(jì)及應(yīng)用

        2.1 加密算法概述

        軟件保護(hù)中使用密碼學(xué)知識(shí)來完成特征數(shù)據(jù)的保護(hù)、敏感信息的驗(yàn)證,涉及內(nèi)容涵蓋信息資源機(jī)密性、信息鑒別、信息報(bào)文完整性和不可否認(rèn)性等相關(guān)問題。數(shù)據(jù)加密技術(shù)是最常用的軟件保護(hù)技術(shù)手段,其基本思想是通過變換信息的表示形式來偽裝需要保護(hù)的敏感信息,使非授權(quán)者不能了解被保護(hù)信息的內(nèi)容。實(shí)施過程中利用技術(shù)手段把重要的數(shù)據(jù)變?yōu)閬y碼(加密)傳送,到達(dá)目的地后再用相同或不同的手段還原(解密)。數(shù)據(jù)加密技術(shù)包括兩個(gè)元素:加密方案和密鑰。加密方案是將普通的信息資源或者可以理解的信息資源與一串?dāng)?shù)字(密鑰)結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對(duì)數(shù)據(jù)進(jìn)行編碼加密和解密的一種數(shù)據(jù)。在密鑰保護(hù)中,可通過適當(dāng)?shù)拿荑€加密技術(shù)和管理機(jī)制來保證信息資源的安全。

        數(shù)據(jù)加密算法基于相應(yīng)的數(shù)學(xué)理論,發(fā)展至今,已經(jīng)產(chǎn)生了大量優(yōu)秀的加密算法,通常分為兩類:對(duì)稱密碼算法和非對(duì)稱密碼算法。Blowfish算法是著名的對(duì)稱加密算法,是一種將64位數(shù)據(jù)分組及使用可變長度密鑰的對(duì)稱密鑰分組加密算法,可用來加密64位長度的字符串。32位處理器誕生后,Blowfish算法因其在加密速度上的優(yōu)越性而引起人們的廣泛關(guān)注。Blowfish算法具有加密速度快、緊湊、密鑰長度可變、免費(fèi)使用等特點(diǎn),已被廣泛使用于軟件保護(hù)、軟件認(rèn)證激活。算法核心在于子密鑰的生成,它將變長密鑰擴(kuò)展成總長4168 比特位的子密鑰數(shù)組。算法中使用了大量的子密鑰,而子密鑰又依賴于用戶密鑰,實(shí)際加密解密過程中使用的是更新后的子密鑰數(shù)組,子密鑰即P數(shù)組和S盒。算法輸人64位明文信息,經(jīng)過加密運(yùn)算,輸出64位密文信息。

        MD5的全稱是Message-digest Algorithm5(中文譯作信息摘要算法5),為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列算法,用以驗(yàn)證消息的完整性、確保信息傳輸?shù)恼_性,是著名的非對(duì)稱加密算法。它經(jīng)MD2、MD3和MD4發(fā)展而來,在20世紀(jì)90年代初誕生。MD5算法可簡要敘述為:MD5以512位分組來處理輸入的信息資源,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列循環(huán)處理,算法的輸出四個(gè)32位分組,將這四個(gè)32位分組順序組合后生成一個(gè)128位散列值。MD5算法具有輸出長度固定、目標(biāo)值容易計(jì)算、抗修改性強(qiáng)和超低碰撞概率的特點(diǎn)。對(duì)任意長度的數(shù)據(jù),算法輸出固定128位散列值;對(duì)原數(shù)據(jù)的任何修改,即便是修改一個(gè)比特位,所得到的散列值都不同的;已知原數(shù)據(jù)和所生成散列值,想找到一個(gè)具有相同散列值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常非常困難的。

        2.2 加密方案設(shè)計(jì)

        在實(shí)際使用過程中,使用單一加密算法作為加密方案對(duì)信息資源進(jìn)行加密保護(hù)往往無法滿足應(yīng)用需求。其中Blowfish算法采用變長用戶密鑰,算法加密解密核心在于用戶密鑰的選擇和保護(hù),開發(fā)者往往經(jīng)常使用一些弱用戶密鑰對(duì)信息資源進(jìn)行加密,導(dǎo)致Blowfish算法存在著很大的安全隱患 。然而簡單的MD5加密也是沒有辦法達(dá)到絕對(duì)的安全的,隨著技術(shù)的不斷進(jìn)步,普通的MD5加密有多種暴力破解方式,因此如果想要保證信息數(shù)據(jù)、資源的安全,必須要設(shè)計(jì)新型加密方案。本文將混合使用上述兩種加密算法,設(shè)計(jì)設(shè)計(jì)一種新型的、高效的、破解難度高的混合加密方案,以增強(qiáng)安全性。加密方案核心步驟如下:

        (1)對(duì)原始信息資源使用MD5算法進(jìn)行加密,產(chǎn)生128位散列值;

        (2)將步驟a產(chǎn)生的固定長度散列值作為Blowfish算法的用戶密鑰,初始化Blowfish加密算法;

        (3)使用初始化完成后的Blowfish算法對(duì)原始信息資源的進(jìn)行加密,加密后即會(huì)產(chǎn)生高安全性的密文數(shù)據(jù)。

        2.3 方案工程應(yīng)用

        在實(shí)驗(yàn)室工程應(yīng)用中對(duì)本文設(shè)計(jì)的混合加密方案進(jìn)行驗(yàn)證,對(duì)工程應(yīng)用中的關(guān)鍵部分給出偽代碼實(shí)現(xiàn)。本實(shí)驗(yàn)室工程應(yīng)用設(shè)計(jì)以軟件授權(quán)文件形式試驗(yàn)、驗(yàn)證混合加密方案的先進(jìn)性、可行性和可實(shí)施性,其中授權(quán)文件中含有用于比較驗(yàn)證的密文數(shù)據(jù)。

        生成授權(quán)文件中密文數(shù)據(jù)的偽代碼如下:

        vectormixEncrypt(string hardware , string software)

        {

        stringuserCipherKey = MD5::encryptData(hardware, software);

        Blowfish::initialize(userCipherKey);

        vectorretCiphertext;

        retCiphertext = Blowfish::encryptData(hardwareInfo, software);

        returnretCiphertext;

        }

        認(rèn)證激活過程即讀取授權(quán)文件中的密文數(shù)據(jù),然后掃描目標(biāo)機(jī)器硬件特征、軟件特征數(shù)據(jù),根據(jù)特征數(shù)據(jù)生成密文數(shù)據(jù),將新生成的密文數(shù)據(jù)與授權(quán)文件中讀取的密文數(shù)據(jù)進(jìn)行比較,密文數(shù)據(jù)相同即認(rèn)證激活成功,否則認(rèn)證激活失敗,實(shí)現(xiàn)部分偽代碼如下:

        vectorreadCiphertext = readLicenseFile("license.data");

        stringlocalHard = scanLocalHardwareInfo();

        stringlocalSoft = scanLocalSoftwareInfo();

        vectorgenCipherText = mixEncrypt(localHard, localSoft);

        compareCipherText(readCiphertext, genCipherText);

        3 結(jié)束語

        使用激活密鑰、序列號(hào)、激活碼或授權(quán)文件等方式認(rèn)證激活軟件是軟件開發(fā)商保護(hù)軟件知識(shí)產(chǎn)權(quán)的常用技術(shù)手段,但是上述技術(shù)手段存在被破解的風(fēng)險(xiǎn)。隨著基礎(chǔ)數(shù)學(xué)、計(jì)算機(jī)科學(xué)、密碼學(xué)等基礎(chǔ)科學(xué)的發(fā)展,對(duì)加密算法研究的升入,互聯(lián)網(wǎng)技術(shù)的進(jìn)步,使用單一加密算法的加密方案被破解的風(fēng)險(xiǎn)越來越大。為了降低被破解的風(fēng)險(xiǎn),應(yīng)當(dāng)設(shè)計(jì)新型加密方案,混合使用不同類型、用途的加密算法,才能降以指數(shù)級(jí)提高破解難度,降低加密方案被破解的風(fēng)險(xiǎn)。本文所設(shè)計(jì)的新型加密方案組合使用Blowfish算法和MD5摘要算法,安全系數(shù)高、破解難度高,在實(shí)驗(yàn)室工程應(yīng)用中通過驗(yàn)證,具有先進(jìn)性、可行性和可實(shí)施性,可以作為一種先進(jìn)加密方案推廣使用。

        參考文獻(xiàn)

        [1]王津濤,覃尚毅,王冬梅.基于MD5的迭代冗余加密算法.計(jì)算機(jī)工程與設(shè)計(jì),2007(28).

        [2]鐘黔川,朱清新.Blowfish密碼系統(tǒng)分析[J].計(jì)算機(jī)應(yīng)用,2007(27).

        [3]高博,李彥.一種基于硬件特征和動(dòng)態(tài)許可證的服務(wù)器端軟件授權(quán)認(rèn)證模型[J].計(jì)算機(jī)工程與科學(xué),2013(35).

        [4]陳志倫.一種基于RSA/IDEA加密License文件的軟件保護(hù)方案[J].計(jì)算機(jī)應(yīng)用與軟件,2005(22).

        [5]毛明,秦志光,陳少暉.破譯MD5算法關(guān)鍵技術(shù)探索[J].計(jì)算機(jī)應(yīng)用,2009(29).

        作者簡介

        商開拴(1985-),男,河北石家莊市人。大學(xué)本科學(xué)歷?,F(xiàn)為中國電子科技集團(tuán)公司電子科學(xué)研究院職工。主要研究方向?yàn)橄到y(tǒng)軟件設(shè)計(jì)與集成。

        作者單位

        中國電子科技集團(tuán)公司電子科學(xué)研究院 北京市 100041

        中文字幕有码在线亚洲 | 国产亚洲av片在线观看18女人| 亚洲国产成人AⅤ片在线观看| 婷婷开心五月综合基地| 在线国产激情视频观看| 日本19禁啪啪吃奶大尺度| 色偷偷一区二区无码视频| 尤物蜜芽福利国产污在线观看 | 青草青草久热精品视频国产4| 国产一区资源在线播放| 日本熟妇美熟bbw| 成人亚洲性情网站www在线观看| 国产精品麻豆A啊在线观看| 国产高清在线精品一区二区三区| 人妻少妇精品久久久久久| 人与嘼交av免费| 久久精品国产88久久综合 | 男女下面进入的视频| 久久久久久99精品| 亚洲一区二区三区福利久久蜜桃| 艳妇臀荡乳欲伦交换h在线观看| 国产人妻无码一区二区三区免费| 高清国产亚洲va精品| 一区二区三区乱码专区| 日本大骚b视频在线| 亚洲AV成人无码久久精品老人| 亚洲人av毛片一区二区| 亚洲精品午夜久久久九九| 人人爽久久涩噜噜噜av| 国产偷国产偷亚洲欧美高清| 色综合中文字幕综合网| 日日摸夜夜添夜夜添高潮喷水| 97午夜理论片在线影院| 99在线无码精品秘 入口九色| 国产一区二区三区色哟哟| 亚洲av中文无码乱人伦在线播放| 亚洲一区视频在线| 亚洲无av码一区二区三区| 国产精品亚洲片在线观看不卡| 日本亚洲国产一区二区三区| 亚洲日本人妻中文字幕|