[摘要] 結合軟件加殼、脫殼技術,提出了一種基于橢圓曲線數字簽名算法的軟件保護方案,該方案利用加殼技術將密碼信息和驗證部分嵌入到軟件中,用戶輸入的密鑰經過驗證正確后才能安裝該軟件。
[關鍵詞] 數字簽名算法 加殼保護 橢圓曲線密碼體制
為了保護自己軟件的技術內核不被他人輕易盜用,軟件開發人員使用了各種保護技術來保障軟件版權不被侵犯。目前,軟件保護方案可以分成兩類:一類是依靠硬件加密的保護方案,另一類是軟加密方案。由于前者成本高,所以大部分價格相對較低的商業軟件和共享軟件采取軟加密方案。
軟加密方案常利用系統的一些特征碼來生成注冊碼,并以此來驗證用戶的合法性。為了克服在軟加密方案中,破解者用調試軟件跟蹤到比較和跳轉的位置,然后強行將跳轉地址改為程序繼續執行的地址,從而實施破解這些缺點,加殼軟件應運而生。
一、殼技術和相關原理
在一些計算機軟件里有一段專門負責保護軟件不被非法修改或反編譯的代碼被稱為“殼”。加殼就是把一段外殼程序附加到應用程序中,并把程序的執行入口指向外殼程序中。加殼后的文件執行時,外殼程序先于程序運行拿到控制權,首先執行;脫殼的基本思想是驗證密碼。
二、基于橢圓曲線數字簽名算法
橢圓曲線數字簽名算法(ECDSA)是利用了由美國NIST和NSA設計的一種安全Hash算法,并提出的一種新的數字簽名技術,其數學原理是基于橢圓曲線離散對數問題的難解性?!?br>