• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      淺析RSA數(shù)字簽名算法的軟件加密應(yīng)用

      2016-11-15 03:59:36余勇
      關(guān)鍵詞:序列號(hào)數(shù)字簽名解密

      余勇

      (河南經(jīng)貿(mào)職業(yè)學(xué)院,河南 鄭州 450053)

      淺析RSA數(shù)字簽名算法的軟件加密應(yīng)用

      余勇

      (河南經(jīng)貿(mào)職業(yè)學(xué)院,河南 鄭州 450053)

      軟件是一種非常特殊的商品,其凝結(jié)了開(kāi)發(fā)人員的智慧、精力和時(shí)間。但軟件本身極易被復(fù)制,同時(shí)軟件版權(quán)也非常容易被盜。為維護(hù)開(kāi)發(fā)人員利益,其在開(kāi)發(fā)軟件的過(guò)程當(dāng)中不斷研發(fā)新的加密技術(shù),以維護(hù)開(kāi)發(fā)者的版權(quán),同時(shí)也提高了軟件的安全性。文章簡(jiǎn)單闡述了RSA數(shù)字簽名算法的基本概念和原理,并對(duì)RSA數(shù)字簽名算法在軟件加密當(dāng)中的具體應(yīng)用進(jìn)行了詳細(xì)探討。

      RSA數(shù)字簽名算法軟件加密;秘鑰;安全性

      隨著社會(huì)及計(jì)算機(jī)技術(shù)的不斷發(fā)展,軟件行業(yè)也得以迅速發(fā)展,社會(huì)軟件需求量不斷增加。軟件的開(kāi)發(fā)成本較高、周期較長(zhǎng)且具高風(fēng)險(xiǎn)性,但同時(shí)軟件又極易被復(fù)制和被盜,為維護(hù)開(kāi)發(fā)者的知識(shí)產(chǎn)權(quán)及開(kāi)發(fā)商的合法權(quán)益,就有必要采取相應(yīng)措施以對(duì)軟件進(jìn)行加密保護(hù)。RSA是一種非對(duì)稱加密算法,將其應(yīng)用于軟件加密當(dāng)中不僅可保護(hù)軟件的私密性,而且還可提高軟件的安全性,有利于軟件行業(yè)的健康、有序發(fā)展。

      一、RSA數(shù)字簽名算法

      1.RSA數(shù)字簽名算法的基本概念

      RSA數(shù)字簽名算法是一種非對(duì)稱加密算法,產(chǎn)生于1978年,創(chuàng)始人為Ron Rivest、AdiShamirh和Len Adleman。此算法是以三人名字而命名的,其數(shù)論思想非常簡(jiǎn)單,即“兩個(gè)素?cái)?shù)相乘容易,但分解難”。

      傳統(tǒng)的加密方法其加密密鑰及解密密鑰通常一致,密文的安全性不高,另密鑰的生成、注入、管理及分發(fā)等過(guò)程相對(duì)復(fù)雜。隨著計(jì)算機(jī)的不斷推廣和應(yīng)用,計(jì)算機(jī)使用者數(shù)量迅速加大,傳統(tǒng)加密方法的缺陷越來(lái)越明顯。但是公開(kāi)密鑰密碼體制當(dāng)中,加密密鑰完全不同于解密密鑰,加密密鑰是公開(kāi)的,但是解密密鑰為秘密密鑰,是實(shí)施了相應(yīng)的加密保護(hù)措施的,這種加密密鑰不同于解密密鑰密碼體制被稱為非對(duì)稱加密方法,其有效彌補(bǔ)了傳統(tǒng)加密方法的不足之處。另外,雖解密密鑰由加密密鑰決定,但卻無(wú)法根據(jù)加密密鑰進(jìn)行推導(dǎo)所得,因此此加密方式具很高的安全性能。

      2.RSA數(shù)字簽名算法的基本原理

      RSA現(xiàn)已成為使用范圍最為廣泛的一種非對(duì)稱算法加密技術(shù),其不僅可用于數(shù)據(jù)加密,同時(shí)也可用于數(shù)字簽名。RSA最大的特征在于其加密密鑰與解密密鑰不同,且解密密鑰無(wú)法通過(guò)加密密鑰進(jìn)行計(jì)算所得??傮w而言,RSA數(shù)字簽名算法的基本原理主要包括以下三步:

      第一,產(chǎn)生加密密鑰和解密密鑰。選擇兩個(gè)大素?cái)?shù),分別記為p、q,計(jì)算其乘積,并記為n,n=pq;然后再隨機(jī)選擇一個(gè)正整數(shù)作為加密密鑰,記為e,e與(p-1)(q-1)的關(guān)系為互素;利用歐幾里得擴(kuò)展算法進(jìn)行計(jì)算,以得到解密密鑰,記為d。d所要滿足的條件如下:

      d=e-1mod[(p-1)(q-1)]

      式中的d與n的關(guān)系也為互素,e與n為公開(kāi)密鑰,d為私人密鑰,剛開(kāi)始所選擇的p與q在計(jì)算完成之后就不需要了,可舍棄,但要注意的p與q的取值決不可泄露。

      第二,加密過(guò)程。加密過(guò)程,即軟件注冊(cè)碼的產(chǎn)生過(guò)程。以計(jì)算機(jī)ID為明文信息,即公開(kāi)信息,記作m,同時(shí)利用私人密鑰d加密信息m,從而得到密文s。s的計(jì)算公式如下:

      s=mdmodn。式中的s即為擁有上述計(jì)算機(jī)ID的軟件注冊(cè)碼。

      第三,解密過(guò)程。解密過(guò)程,即校驗(yàn)軟件注冊(cè)碼的過(guò)程。用戶可直接將注冊(cè)碼輸入相應(yīng)界面或是從軟件包的注冊(cè)文件當(dāng)中提取注冊(cè)碼s,然后再利用公開(kāi)密鑰e來(lái)解密密文,從而獲取明文信息。其計(jì)算公式如下:m'=semodn。

      將計(jì)算所得的m'與原始明文m進(jìn)行比較,若相等,則表明s為軟件開(kāi)發(fā)人員所承認(rèn)的合法注冊(cè)碼,軟件可正常運(yùn)行;若不等,則表明s不為軟件開(kāi)發(fā)員的承認(rèn),軟件會(huì)拒絕運(yùn)行。

      通過(guò)分析加密過(guò)程可知,軟件注冊(cè)碼的長(zhǎng)度主要由n來(lái)決定,n的位數(shù)越多,軟件就越安全。理論上來(lái)說(shuō),破解人員若能通過(guò)n來(lái)推導(dǎo)出p和q,通過(guò)加密密鑰e,其就可獲取解密密鑰d,進(jìn)而破解密文。然而實(shí)際上,300多年以來(lái),很多數(shù)學(xué)家在不斷研究因式分解的基礎(chǔ)上也未能取得有效的進(jìn)展,因此要想通過(guò)n來(lái)得知所選取的素?cái)?shù)p和q是非常困難的。而且通常來(lái)說(shuō),在實(shí)際的軟件加密應(yīng)用當(dāng)中,RSA數(shù)字簽名算法的密鑰保持在1024位以上,具有足夠的安全性能,可有效保障軟件注冊(cè)碼的安全性。

      二、RSA數(shù)字簽名算法的軟件加密應(yīng)用

      本文采取“一機(jī)一碼”制軟件保護(hù)方案,分析了RSA數(shù)字簽名算法在軟件加密當(dāng)中的具體應(yīng)用。

      1.序列號(hào)的產(chǎn)生

      本文所采取的是“一機(jī)一碼”制軟件保護(hù)方案,也就是說(shuō),每臺(tái)計(jì)算機(jī)的序列號(hào)是唯一的。計(jì)算機(jī)的硬盤(pán)序列號(hào)、網(wǎng)卡MAC地址混合形成計(jì)算機(jī)的標(biāo)志碼,再利用本機(jī)的消息摘要及哈希算法則可將所形成的標(biāo)志碼轉(zhuǎn)變?yōu)楸緳C(jī)的序列號(hào),此序列號(hào)是唯一且固定的。在序列號(hào)的生成過(guò)程當(dāng)中可自行加入任何數(shù)據(jù),同時(shí)利用RSA數(shù)字簽名算法將所加入數(shù)據(jù)進(jìn)行加密,從而形成軟件的注冊(cè)序列號(hào)。

      2.注冊(cè)碼的生成

      序列號(hào)生成之后,用戶下一步就需獲取注冊(cè)碼。首先,用戶可采取網(wǎng)絡(luò)或是電話等方式將所生成的序列號(hào)以及版本信息和電子郵箱等基本信息向開(kāi)發(fā)商提供,然后開(kāi)發(fā)商利用RSA數(shù)字簽名算法當(dāng)中的私鑰來(lái)加密用戶信息,從而獲得軟件注冊(cè)碼;接著開(kāi)發(fā)商將注冊(cè)碼利用各種方法將所得的密文進(jìn)行轉(zhuǎn)化,如Base64、Uuencode編碼等,將所得密文轉(zhuǎn)變?yōu)榭梢宰址M(jìn)行輸入的數(shù)據(jù),然后提供給用戶。

      3.引入RSA數(shù)字簽名算法

      利用RSA數(shù)字簽名算法加密軟件時(shí),密鑰的長(zhǎng)度越長(zhǎng),加密的計(jì)算量就會(huì)越大,軟件的保密程度也會(huì)越深。本方案當(dāng)中,利用RSA數(shù)字簽名算法進(jìn)行軟件加密的密鑰長(zhǎng)度設(shè)定為1024bit。RSA公鑰的算法如下:第一,將計(jì)算機(jī)的序列號(hào)及網(wǎng)卡的MAC地址提取出來(lái)以形成公開(kāi)信息m;第二,利用RSA數(shù)字簽名算法當(dāng)中的私人密鑰d來(lái)加密公開(kāi)信息m,從而得到密文s;第三,利用RSA數(shù)字簽名算法當(dāng)中的公開(kāi)密鑰e來(lái)解密密文s,從而得到明文m'。此過(guò)程當(dāng)中的部分代碼如下:

      //讀取硬盤(pán)序列號(hào)

      上述代碼為讀取計(jì)算機(jī)硬盤(pán)序列號(hào)及利用RSA數(shù)字簽名算法進(jìn)行解密的過(guò)程。解密之后,將通過(guò)以計(jì)算機(jī)的序列號(hào)及網(wǎng)卡的MAC地址提取出來(lái)以形成公開(kāi)信息m與解密所得明文m'進(jìn)行比較,若兩者一致,則說(shuō)明注冊(cè)信息為合法信息,軟件可正常運(yùn)行;若不一致,則說(shuō)明注冊(cè)信息不合法,軟件無(wú)法運(yùn)行。

      4.密鑰數(shù)據(jù)庫(kù)管理

      就理論而言,不管是哪種加密方法都是有可能被破解的,只是不同加密方法的破解難度有所不同。為加強(qiáng)軟件的破解難度,可利用數(shù)據(jù)庫(kù)存來(lái)存儲(chǔ)公開(kāi)密鑰及私密密鑰,并定期更換,同時(shí)利用Access數(shù)據(jù)庫(kù)以對(duì)用戶信息進(jìn)行保存,并存儲(chǔ)各版本軟件加密密鑰,從而達(dá)到更新密鑰的目的,進(jìn)而提高軟件的破解難度。

      在這種情況下,用戶若想獲取加密密鑰,則可通過(guò)編寫(xiě)相應(yīng)的SQL語(yǔ)言以讓系統(tǒng)在數(shù)據(jù)庫(kù)存當(dāng)中進(jìn)行查詢即可,系統(tǒng)會(huì)依照相關(guān)用戶信息自動(dòng)查找并提取出相應(yīng)的加密密鑰。

      5.驗(yàn)證用戶合法性

      程序在進(jìn)行運(yùn)行時(shí)會(huì)自動(dòng)彈出注冊(cè)碼輸入框,用戶輸入正確注冊(cè)碼,即可注冊(cè)成功;若所輸入注冊(cè)碼錯(cuò)誤,則提示注冊(cè)失敗。

      要注意的是,每臺(tái)計(jì)算機(jī)的識(shí)別碼都是唯一的,軟件也是通過(guò)識(shí)別碼來(lái)辨別各計(jì)算機(jī)的。但是當(dāng)計(jì)算機(jī)升級(jí)或是某些部件被更換之后,其識(shí)別碼也會(huì)產(chǎn)生變化。在這種情況下,用戶若要再次使用軟件,則可能需重新申請(qǐng)注冊(cè)碼,這在很大程度上加大了用戶和開(kāi)發(fā)者或開(kāi)發(fā)商的負(fù)擔(dān)。為此,在設(shè)計(jì)識(shí)別碼時(shí)應(yīng)注意有一定的變化空間。如WindowsXP,其識(shí)別碼為64位,其中有10項(xiàng)硬件信息,如CPU序列號(hào)、RAM容量、網(wǎng)卡MAC地址等,若識(shí)別碼有變化并保持在3位以內(nèi),則軟件會(huì)默認(rèn)為系統(tǒng)硬件更換或是軟件升級(jí)等狀況。在此情況下,軟件程序在校驗(yàn)注冊(cè)碼時(shí)會(huì)與本機(jī)的識(shí)別碼進(jìn)行比較,若完全匹配或是硬件變化較小,則軟件仍可正常運(yùn)行。

      利用RSA數(shù)字簽名算法對(duì)軟件進(jìn)行加密,同時(shí)采取數(shù)據(jù)庫(kù)管理方式定期更新密鑰,可有效提高軟件的破解難度,避免軟件被非法復(fù)制或傳播,保障了開(kāi)發(fā)者及開(kāi)發(fā)商的合法權(quán)益。但就理論而言,RSA數(shù)字簽名算法也不能保證軟件的絕對(duì)安全,因此對(duì)于RSA數(shù)字簽名算法在軟件加密當(dāng)中的應(yīng)用還需進(jìn)行深入研究,以不斷完善現(xiàn)有加密方法,同時(shí)開(kāi)發(fā)新的軟件保護(hù)技術(shù),以將防止盜版工作做得更好,促進(jìn)軟件行業(yè)的健康發(fā)展。

      [1]董燦鈞.注冊(cè)碼軟件加密保護(hù)中的RSA算法的應(yīng)用[J].信息安全與技術(shù),2013(9):15-16.

      [2]劉心聲.RSA算法在共享軟件加密技術(shù)中的應(yīng)用機(jī)制研究[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(24):170-171.

      [3]卜曉燕,張根耀.組合算法在軟件加密系統(tǒng)中的實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2012(8):77-79.

      [4]趙鑫.RSA文件加密軟件的設(shè)計(jì)與開(kāi)發(fā)[J].數(shù)字技術(shù)與應(yīng)用,2014(8):173-174.

      TP

      A

      1673-0046(2016)8-0187-02

      猜你喜歡
      序列號(hào)數(shù)字簽名解密
      解密“熱脹冷縮”
      解密“一包三改”
      淺析計(jì)算機(jī)安全防護(hù)中數(shù)字簽名技術(shù)的應(yīng)用
      炫詞解密
      recALL
      基于數(shù)字簽名的QR碼水印認(rèn)證系統(tǒng)
      解密“大調(diào)解”
      基于數(shù)字簽名和HSM的數(shù)據(jù)庫(kù)篡改檢測(cè)機(jī)制
      PP助手教你辨別翻新iPhone5小白不再中招
      溫度傳感器DS18B20序列號(hào)批量搜索算法
      仁怀市| 宜春市| 府谷县| 南木林县| 高雄市| 石河子市| 扬中市| 淅川县| 江孜县| 山西省| 旬邑县| 洪泽县| 荥经县| 桑日县| 临潭县| 杂多县| 金平| 津南区| 花莲县| 九龙城区| 吐鲁番市| 清丰县| 茂名市| 宣汉县| 五指山市| 海丰县| 文昌市| 盐源县| 临颍县| 禄丰县| 沾化县| 万载县| 交城县| 平塘县| 遵义县| 全州县| 鄱阳县| 西畴县| 依兰县| 个旧市| 丹凤县|