版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(19)國(guó)家知識(shí)產(chǎn)權(quán)局HO4L9/06(2006.0地址311121浙江省杭州市余杭區(qū)倉(cāng)前街(72)發(fā)明人李龍桂陳廷權(quán)原攀峰陳廷梁所(特殊普通合伙)16250HO4L9/14(2006.01)HO4L9/30(2002接收待加密的java源碼文件,并將所述java源碼文件按照預(yù)設(shè)的文件分塊大小劃分為多個(gè)源碼文件塊;針對(duì)每個(gè)所述源碼文件塊,調(diào)用C++動(dòng)態(tài)庫(kù)中的加密模塊執(zhí)行加密操作,其中,所述加密模塊采用雙重加密機(jī)制對(duì)所述源碼文件塊進(jìn)行加密處理,包括:基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù);將每個(gè)所述源碼文件塊對(duì)應(yīng)的最終加密數(shù)據(jù)進(jìn)行合并,生成加密后的java源碼文件;在所述java源碼文件的解密過(guò)程中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存;當(dāng)判定當(dāng)前運(yùn)行環(huán)境為正常模式時(shí),調(diào)用所述C++動(dòng)態(tài)庫(kù)中的解密模塊,采用與加密過(guò)程相反的次序執(zhí)行解密操作,恢復(fù)出原始的java源碼文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰包括:提取所述源碼文件塊中的關(guān)鍵字段,并統(tǒng)計(jì)每個(gè)關(guān)鍵字段的出現(xiàn)頻率;根據(jù)所述文件大小、行數(shù)信息以及關(guān)鍵字段的出現(xiàn)頻率,采用特征向量映射算法構(gòu)建所述源碼文件塊的多維特征矩陣,并基于主成分分析方法對(duì)所述多維特征矩陣進(jìn)行降維處理,得到特征向量,將所述特征向量通過(guò)哈希函數(shù)計(jì)算得到內(nèi)容特征值;從預(yù)設(shè)的密鑰池中獲取靜態(tài)密鑰,其中,所述密鑰池中包含多個(gè)不同長(zhǎng)度的備選靜態(tài)根據(jù)所述內(nèi)容特征值的數(shù)值范圍,選擇一個(gè)最優(yōu)長(zhǎng)度的備選靜態(tài)密鑰作為目標(biāo)靜態(tài)密鑰,并將所述內(nèi)容特征值按照分組方式重組生成動(dòng)態(tài)密鑰,其中,所述動(dòng)態(tài)密鑰的長(zhǎng)度與所述目標(biāo)靜態(tài)密鑰的長(zhǎng)度相同;將所述動(dòng)態(tài)密鑰與所述目標(biāo)靜態(tài)密鑰進(jìn)行異或運(yùn)算,生成用于后續(xù)加密處理的混合密3.根據(jù)權(quán)利要求1所述的方法,其特征在于,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù)包括:將所述源碼文件塊按照AES加密算法要求的數(shù)據(jù)塊大小進(jìn)行分組;對(duì)所述混合密鑰進(jìn)行動(dòng)態(tài)擴(kuò)展,根據(jù)所述源碼文件塊的分組數(shù)量,采用密鑰擴(kuò)展算法生成輪密鑰序列,其中,針對(duì)每一個(gè)分組數(shù)據(jù),在加密過(guò)程中使用不同的輪密鑰,且相鄰分組的輪密鑰之間具有關(guān)聯(lián)性變換;調(diào)用AES加密模塊,采用所述輪密鑰序列對(duì)分組后的源碼文件塊執(zhí)行加密運(yùn)算,得到初級(jí)加密數(shù)據(jù);基于預(yù)設(shè)的橢圓曲線參數(shù)初始化橢圓曲線密碼系統(tǒng),其中,所述橢圓曲線參數(shù)包括曲將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密數(shù)據(jù)3的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密運(yùn)算,得到最終加密數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密運(yùn)算包括:計(jì)算所述初級(jí)加密數(shù)據(jù)的比特流序列,并基于所述比特流序列計(jì)算香農(nóng)熵值作為數(shù)據(jù)熵值;根據(jù)所述數(shù)據(jù)熵值在預(yù)設(shè)的橢圓曲線族中進(jìn)行曲線選擇,具體包括:當(dāng)數(shù)據(jù)熵值大于第一閾值時(shí)選擇384位橢圓曲線,當(dāng)數(shù)據(jù)熵值大于第二閾值時(shí)選擇521位橢圓曲線,并獲取所選橢圓曲線對(duì)應(yīng)的曲線參數(shù),包括有限域的階數(shù)、基點(diǎn)生成元以及曲線系數(shù);將所述初級(jí)加密數(shù)據(jù)按照所選橢圓曲線的分組長(zhǎng)度要求進(jìn)行分段,得到數(shù)據(jù)段序列,并計(jì)算每個(gè)數(shù)據(jù)段序列的局部熵值;對(duì)所述數(shù)據(jù)段序列中的每個(gè)數(shù)據(jù)段,執(zhí)行以下映射操作:根據(jù)所述局部熵值利用Koblitz編碼將數(shù)據(jù)段序列轉(zhuǎn)換為域上的元素;通過(guò)橢圓曲線上的點(diǎn)乘運(yùn)算將域元素映射為曲線上的離散點(diǎn);將映射得到的離散點(diǎn)保存到點(diǎn)集合中;對(duì)所述點(diǎn)集合執(zhí)行橢圓曲線加密運(yùn)算,包括:使用調(diào)整后的滑動(dòng)窗口執(zhí)行標(biāo)量乘法運(yùn)算;按照調(diào)整后的迭代次數(shù)重復(fù)執(zhí)行點(diǎn)加運(yùn)算;使用調(diào)整后的密鑰長(zhǎng)度生成臨時(shí)會(huì)話密鑰;將加密運(yùn)算的輸出結(jié)果進(jìn)行字節(jié)序列化,并將序列化結(jié)果與參數(shù)調(diào)整記錄進(jìn)行組合打5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述運(yùn)行環(huán)境參數(shù)包括時(shí)間序列參數(shù)、硬件參數(shù)以及進(jìn)程行為參數(shù),其中所述時(shí)間序列參數(shù)為連續(xù)指令執(zhí)行的時(shí)間間隔值,所述硬件參數(shù)包括處理器序列號(hào)和主板唯一標(biāo)識(shí)碼,所述進(jìn)程行為參數(shù)包括進(jìn)程標(biāo)識(shí)變化次數(shù)和進(jìn)程層級(jí)標(biāo)記。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存包括:計(jì)算所述時(shí)間序列參數(shù)中相鄰時(shí)間間隔的平均值、標(biāo)準(zhǔn)差,將所述標(biāo)準(zhǔn)差與預(yù)設(shè)時(shí)間閾值比對(duì)得到時(shí)間異常分值;將所述硬件參數(shù)中的處理器序列號(hào)、主板唯一標(biāo)識(shí)碼與預(yù)存的基準(zhǔn)參數(shù)進(jìn)行匹配度計(jì)算得到硬件異常分值;根據(jù)單位時(shí)間內(nèi)的進(jìn)程標(biāo)識(shí)變化次數(shù)及進(jìn)程層級(jí)標(biāo)記計(jì)算進(jìn)程異常分值;對(duì)所述時(shí)間異常分值、硬件異常分值和進(jìn)程異常分值分別賦予權(quán)重系數(shù),將加權(quán)后的異常分值相加得到環(huán)境異??偡种?;根據(jù)歷史監(jiān)測(cè)記錄確定基準(zhǔn)判定閾值,基于所述環(huán)境異常總分值的變化趨勢(shì),動(dòng)態(tài)調(diào)整所述基準(zhǔn)判定閾值,得到實(shí)時(shí)判定閾值,并將所述實(shí)時(shí)判定閾值劃分為三個(gè)防護(hù)等級(jí)區(qū)當(dāng)所述環(huán)境異??偡种滴挥诘谝环雷o(hù)等級(jí)區(qū)間時(shí),將環(huán)境參數(shù)的采樣時(shí)間間隔減小為原采樣時(shí)間間隔的一半,并記錄異常特征參數(shù);當(dāng)所述環(huán)境異常總分值位于第二防護(hù)等級(jí)區(qū)間時(shí),暫停當(dāng)前正在執(zhí)行的敏感操作并將關(guān)鍵數(shù)據(jù)復(fù)制到安全存儲(chǔ)區(qū)域;當(dāng)所述環(huán)境異4??偡种滴挥诘谌雷o(hù)等級(jí)區(qū)間時(shí),立即終止解密進(jìn)程;將內(nèi)存緩存數(shù)據(jù)劃分為固定大小的數(shù)據(jù)塊,生成與數(shù)據(jù)塊數(shù)量相等的隨機(jī)密鑰序列,使用所述隨機(jī)密鑰序列與所述數(shù)據(jù)塊序列進(jìn)行多輪異或運(yùn)算,實(shí)現(xiàn)緩存數(shù)據(jù)的安全清除。7.基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密系統(tǒng),用于實(shí)現(xiàn)如權(quán)利要求1-6中任一項(xiàng)第一單元,用于接收待加密的java源碼文件,并將所述java源碼文件按照預(yù)設(shè)的文件分塊大小劃分為多個(gè)源碼文件塊;第二單元,用于針對(duì)每個(gè)所述源碼文件塊,調(diào)用C++動(dòng)態(tài)庫(kù)中的加密模塊執(zhí)行加密操作,其中,所述加密模塊采用雙重加密機(jī)制對(duì)所述源碼文件塊進(jìn)行加密處理,包括:基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù);第三單元,用于將每個(gè)所述源碼文件塊對(duì)應(yīng)的最終加密數(shù)據(jù)進(jìn)行合并,生成加密后的java源碼文件;第四單元,用于在所述java源碼文件的解密過(guò)程中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存;第五單元,用于當(dāng)判定當(dāng)前運(yùn)行環(huán)境為正常模式時(shí),調(diào)用所述C++動(dòng)態(tài)庫(kù)中的解密模塊,采用與加密過(guò)程相反的次序執(zhí)行解密操作,恢復(fù)出原始的java源碼文件。處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為調(diào)用所述存儲(chǔ)器存儲(chǔ)的指令,以執(zhí)行權(quán)利要求1至6中任意一項(xiàng)所述的方法。9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序指令,其特征在于,所述計(jì)算機(jī)程序指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任意一項(xiàng)所述的方法。5基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法技術(shù)領(lǐng)域[0001]本發(fā)明涉及安全加密技術(shù)領(lǐng)域,尤其涉及基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法。背景技術(shù)[0002]隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,Java作為一種廣泛應(yīng)用的編程語(yǔ)言,被大量用于企業(yè)級(jí)應(yīng)用開(kāi)發(fā)、移動(dòng)應(yīng)用開(kāi)發(fā)以及Web服務(wù)開(kāi)發(fā)等多個(gè)領(lǐng)域。然而,由于Java程序的可讀性較強(qiáng),其源碼文件一旦泄露,不僅會(huì)造成企業(yè)核心技術(shù)的流失,還可能導(dǎo)致軟件系統(tǒng)安全漏洞被惡意利用。因此,Java源碼文件的安全保護(hù)已成為軟件開(kāi)發(fā)領(lǐng)域亟待解決的重要問(wèn)題。[0003]目前市場(chǎng)上存在多種Java源碼保護(hù)技術(shù),主要包括代碼混淆、加密保護(hù)以及虛擬機(jī)保護(hù)等方法。傳統(tǒng)的Java源碼保護(hù)方法通常采用單一的加密算法或簡(jiǎn)單的密鑰管理機(jī)[0004]現(xiàn)有Java源碼文件加密技術(shù)主要存在以下缺陷和不足:首先,現(xiàn)有的加密方案多采用單一的固定密鑰加密算法,一旦密鑰泄露,所有受保護(hù)的源碼文件安全性將全部失效,缺乏動(dòng)態(tài)調(diào)整密鑰的能力,無(wú)法應(yīng)對(duì)日益復(fù)雜的安全威脅環(huán)境。[0005]其次,大多數(shù)Java源碼加密方案缺乏針對(duì)反編譯和調(diào)試工具的有效防護(hù)措施,黑客可以通過(guò)調(diào)試模式或反編譯工具對(duì)加密后的代碼進(jìn)行分析,逐步破解加密算法和密鑰,導(dǎo)致保護(hù)機(jī)制失效。發(fā)明內(nèi)容[0006]本發(fā)明實(shí)施例提供基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法,能夠解決現(xiàn)有技術(shù)中的問(wèn)題。[0007]本發(fā)明實(shí)施例的第一方面,提供基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法,接收待加密的java源碼文件,并將所述java源碼文件按照預(yù)設(shè)的文件分塊大小劃分為多個(gè)源碼文件塊;針對(duì)每個(gè)所述源碼文件塊,調(diào)用C++動(dòng)態(tài)庫(kù)中的加密模塊執(zhí)行加密操作,其中,所述加密模塊采用雙重加密機(jī)制對(duì)所述源碼文件塊進(jìn)行加密處理,包括:基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù);將每個(gè)所述源碼文件塊對(duì)應(yīng)的最終加密數(shù)據(jù)進(jìn)行合并,生成加密后的java源碼文在所述java源碼文件的解密過(guò)程中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模6當(dāng)判定當(dāng)前運(yùn)行環(huán)境為正常模式時(shí),調(diào)用所述C++動(dòng)態(tài)庫(kù)中的解密模塊,采用與加密過(guò)程相反的次序執(zhí)行解密操作,恢復(fù)出原始的java源碼文件。[0008]基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰包括:提取所述源碼文件塊中的關(guān)鍵字段,并統(tǒng)計(jì)每個(gè)關(guān)鍵字段的出現(xiàn)頻率;根據(jù)所述文件大小、行數(shù)信息以及關(guān)鍵字段的出現(xiàn)頻率,采用特征向量映射算法構(gòu)建所述源碼文件塊的多維特征矩陣,并基于主成分分析方法對(duì)所述多維特征矩陣進(jìn)行降維處理,得到特征向量,將所述特征向量通過(guò)哈希函數(shù)計(jì)算得到內(nèi)容特征值;從預(yù)設(shè)的密鑰池中獲取靜態(tài)密鑰,其中,所述密鑰池中包含多個(gè)不同長(zhǎng)度的備選靜態(tài)密鑰;根據(jù)所述內(nèi)容特征值的數(shù)值范圍,選擇一個(gè)最優(yōu)長(zhǎng)度的備選靜態(tài)密鑰作為目標(biāo)靜態(tài)密鑰,并將所述內(nèi)容特征值按照分組方式重組生成動(dòng)態(tài)密鑰,其中,所述動(dòng)態(tài)密鑰的長(zhǎng)度與所述目標(biāo)靜態(tài)密鑰的長(zhǎng)度相同;將所述動(dòng)態(tài)密鑰與所述目標(biāo)靜態(tài)密鑰進(jìn)行異或運(yùn)算,生成用于后續(xù)加密處理的混合密鑰。[0009]利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù)包括:將所述源碼文件塊按照AES加密算法要求的數(shù)據(jù)塊大小進(jìn)行分組;對(duì)所述混合密鑰進(jìn)行動(dòng)態(tài)擴(kuò)展,根據(jù)所述源碼文件塊的分組數(shù)量,采用密鑰擴(kuò)展算法生成輪密鑰序列,其中,針對(duì)每一個(gè)分組數(shù)據(jù),在加密過(guò)程中使用不同的輪密鑰,且相鄰分組的輪密鑰之間具有關(guān)聯(lián)性變換;調(diào)用AES加密模塊,采用所述輪密鑰序列對(duì)分組后的源碼文件塊執(zhí)行加密運(yùn)算,得到初級(jí)加密數(shù)據(jù);基于預(yù)設(shè)的橢圓曲線參數(shù)初始化橢圓曲線密碼系統(tǒng),其中,所述橢圓曲線參數(shù)包將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密運(yùn)算包括:計(jì)算所述初級(jí)加密數(shù)據(jù)的比特流序列,并基于所述比特流序列計(jì)算香農(nóng)熵值作為數(shù)據(jù)熵值;根據(jù)所述數(shù)據(jù)熵值在預(yù)設(shè)的橢圓曲線族中進(jìn)行曲線選擇,具體包括:當(dāng)數(shù)據(jù)熵值大于第一閾值時(shí)選擇384位橢圓曲線,當(dāng)數(shù)據(jù)熵值大于第二閾值時(shí)選擇521位橢圓曲線,并獲取所選橢圓曲線對(duì)應(yīng)的曲線參數(shù),包括有限域的階數(shù)、基點(diǎn)生成元以及曲線系數(shù);將所述初級(jí)加密數(shù)據(jù)按照所選橢圓曲線的分組長(zhǎng)度要求進(jìn)行分段,得到數(shù)據(jù)段序列,并計(jì)算每個(gè)數(shù)據(jù)段序列的局部熵值;7對(duì)所述數(shù)據(jù)段序列中的每個(gè)數(shù)據(jù)段,執(zhí)行以下映射操作:根據(jù)所述局部熵值利用Koblitz編碼將數(shù)據(jù)段序列轉(zhuǎn)換為域上的元素;通過(guò)橢圓曲線上的點(diǎn)乘運(yùn)算將域元素映射為曲線上的離散點(diǎn);將映射得到的離散點(diǎn)保存到點(diǎn)集合對(duì)所述點(diǎn)集合執(zhí)行橢圓曲線加密運(yùn)算,包括:使用調(diào)整后的滑動(dòng)窗口執(zhí)行標(biāo)量乘法運(yùn)算;按照調(diào)整后的迭代次數(shù)重復(fù)執(zhí)行點(diǎn)加運(yùn)算;使用調(diào)整后的密鑰長(zhǎng)度生成臨時(shí)會(huì)話密鑰;將加密運(yùn)算的輸出結(jié)果進(jìn)行字節(jié)序列化,并將序列化結(jié)果與參數(shù)調(diào)整記錄進(jìn)行組合打包,生成最終的加密數(shù)據(jù)塊。[0010]所述運(yùn)行環(huán)境參數(shù)包括時(shí)間序列參數(shù)、硬件參數(shù)以及進(jìn)程行為參數(shù),其中所述時(shí)間序列參數(shù)為連續(xù)指令執(zhí)行的時(shí)間間隔值,所述硬件參數(shù)包括處理器序列號(hào)和主板唯一標(biāo)識(shí)碼,所述進(jìn)程行為參數(shù)包括進(jìn)程標(biāo)識(shí)變化次數(shù)和進(jìn)程層級(jí)標(biāo)記。[0011]通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存包括:計(jì)算所述時(shí)間序列參數(shù)中相鄰時(shí)間間隔的平均值、標(biāo)準(zhǔn)差,將所述標(biāo)準(zhǔn)差與預(yù)設(shè)時(shí)間閾值比對(duì)得到時(shí)間異常分值;將所述硬件參數(shù)中的處理器序列號(hào)、主板唯一標(biāo)識(shí)碼與預(yù)存的基準(zhǔn)參數(shù)進(jìn)行匹配度計(jì)算得到硬件異常分值;根據(jù)單位時(shí)間內(nèi)的進(jìn)程標(biāo)識(shí)變化次數(shù)及進(jìn)程層級(jí)標(biāo)記計(jì)算進(jìn)程異常分值;對(duì)所述時(shí)間異常分值、硬件異常分值和進(jìn)程異常分值分別賦予權(quán)重系數(shù),將加權(quán)后的異常分值相加得到環(huán)境異??偡种?;根據(jù)歷史監(jiān)測(cè)記錄確定基準(zhǔn)判定閾值,基于所述環(huán)境異??偡种档淖兓厔?shì),動(dòng)態(tài)調(diào)整所述基準(zhǔn)判定閾值,得到實(shí)時(shí)判定閾值,并將所述實(shí)時(shí)判定閾值劃分為三個(gè)防護(hù)等級(jí)區(qū)間;當(dāng)所述環(huán)境異??偡种滴挥诘谝环雷o(hù)等級(jí)區(qū)間時(shí),將環(huán)境參數(shù)的采樣時(shí)間間隔減小為原采樣時(shí)間間隔的一半,并記錄異常特征參數(shù);當(dāng)所述環(huán)境異??偡种滴挥诘诙雷o(hù)等級(jí)區(qū)間時(shí),暫停當(dāng)前正在執(zhí)行的敏感操作并將關(guān)鍵數(shù)據(jù)復(fù)制到安全存儲(chǔ)區(qū)域;當(dāng)所述環(huán)境異??偡种滴挥诘谌雷o(hù)等級(jí)區(qū)間時(shí),立即終止解密進(jìn)程;將內(nèi)存緩存數(shù)據(jù)劃分為固定大小的數(shù)據(jù)塊,生成與數(shù)據(jù)塊數(shù)量相等的隨機(jī)密鑰序列,使用所述隨機(jī)密鑰序列與所述數(shù)據(jù)塊序列進(jìn)行多輪異或運(yùn)算,實(shí)現(xiàn)緩存數(shù)據(jù)的安全清[0012]本發(fā)明實(shí)施例的第二方面,提供基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密系統(tǒng),包括:第一單元,用于接收待加密的java源碼文件,并將所述java源碼文件按照預(yù)設(shè)的文件分塊大小劃分為多個(gè)源碼文件塊;第二單元,用于針對(duì)每個(gè)所述源碼文件塊,調(diào)用C++動(dòng)態(tài)庫(kù)中的加密模塊執(zhí)行加密操作,其中,所述加密模塊采用雙重加密機(jī)制對(duì)所述源碼文件塊進(jìn)行加密處理,包括:基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),8最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù);第三單元,用于將每個(gè)所述源碼文件塊對(duì)應(yīng)的最終加密數(shù)據(jù)進(jìn)行合并,生成加密后的java源碼文件;第四單元,用于在所述java源碼文件的解密過(guò)程中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存;第五單元,用于當(dāng)判定當(dāng)前運(yùn)行環(huán)境為正常模式時(shí),調(diào)用所述C++動(dòng)態(tài)庫(kù)中的解密模塊,采用與加密過(guò)程相反的次序執(zhí)行解密操作,恢復(fù)出原始的java源碼文件。處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為調(diào)用所述存儲(chǔ)器存儲(chǔ)的指令,以執(zhí)行前述所述的方法。[0014]本發(fā)明實(shí)施例的第四方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述所述的方法。[0015]本申請(qǐng)的有益效果如下:本發(fā)明采用C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)Java源碼文件安全加密方法,將Java源碼文件分塊加密后合并,提高了處理大型源碼文件的效率,避免了內(nèi)存溢出風(fēng)險(xiǎn),同時(shí)減少了加密解密過(guò)程的時(shí)間開(kāi)銷(xiāo),提升了系統(tǒng)整體性能。[0016]本發(fā)明采用雙重加密機(jī)制,結(jié)合動(dòng)態(tài)密鑰和靜態(tài)密鑰生成混合密鑰,并依次使用AES加密和橢圓曲線密碼算法進(jìn)行二次加密,顯著增強(qiáng)了加密強(qiáng)度,即使攻擊者獲取部分加密信息也難以破解完整源碼,有效保護(hù)了知識(shí)產(chǎn)權(quán)。[0017]本發(fā)明通過(guò)實(shí)時(shí)監(jiān)測(cè)Java虛擬機(jī)運(yùn)行環(huán)境參數(shù),能夠識(shí)別調(diào)試模式并自動(dòng)終止解密操作并清空緩存,防止了通過(guò)調(diào)試工具進(jìn)行的逆向工程攻擊,同時(shí)由于采用C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)核心加密解密功能,使得Java代碼無(wú)法直接調(diào)用關(guān)鍵算法,進(jìn)一步增強(qiáng)了系統(tǒng)的安全性。附圖說(shuō)明[0018]圖1為本發(fā)明實(shí)施例基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法的流程示意圖2為本發(fā)明實(shí)施例得到最終加密數(shù)據(jù)的流程示意圖。具體實(shí)施方式[0019]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0020]下面以具體地實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。下面這幾個(gè)具體的實(shí)施例可以相互結(jié)合,對(duì)于相同或相似的概念或過(guò)程可能在某些實(shí)施例不再贅述。[0021]圖1為本發(fā)明實(shí)施例基于C++動(dòng)態(tài)庫(kù)實(shí)現(xiàn)java源碼文件安全加密方法的流程示意9接收待加密的java源碼文件,并將所述java源碼文件按照預(yù)設(shè)的文件分塊大小劃分為多個(gè)源碼文件塊;針對(duì)每個(gè)所述源碼文件塊,調(diào)用C++動(dòng)態(tài)庫(kù)中的加密模塊執(zhí)行加密操作,其中,所述加密模塊采用雙重加密機(jī)制對(duì)所述源碼文件塊進(jìn)行加密處理,包括:基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù);將每個(gè)所述源碼文件塊對(duì)應(yīng)的最終加密數(shù)據(jù)進(jìn)行合并,生成加密后的java源碼文在所述java源碼文件的解密過(guò)程中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模當(dāng)判定當(dāng)前運(yùn)行環(huán)境為正常模式時(shí),調(diào)用所述C++動(dòng)態(tài)庫(kù)中的解密模塊,采用與加密過(guò)程相反的次序執(zhí)行解密操作,恢復(fù)出原始的java源碼文件。[0022]在一種可選的實(shí)施方式中,基于所述源碼文件塊的內(nèi)容特征值生成動(dòng)態(tài)密鑰,將所述動(dòng)態(tài)密鑰與預(yù)設(shè)的靜態(tài)密鑰進(jìn)行異或運(yùn)算得到混合密鑰包括:提取所述源碼文件塊中的關(guān)鍵字段,并統(tǒng)計(jì)每個(gè)關(guān)鍵字段的出現(xiàn)頻率;根據(jù)所述文件大小、行數(shù)信息以及關(guān)鍵字段的出現(xiàn)頻率,采用特征向量映射算法構(gòu)建所述源碼文件塊的多維特征矩陣,并基于主成分分析方法對(duì)所述多維特征矩陣進(jìn)行降維處理,得到特征向量,將所述特征向量通過(guò)哈希函數(shù)計(jì)算得到內(nèi)容特征值;從預(yù)設(shè)的密鑰池中獲取靜態(tài)密鑰,其中,所述密鑰池中包含多個(gè)不同長(zhǎng)度的備選靜態(tài)密鑰;根據(jù)所述內(nèi)容特征值的數(shù)值范圍,選擇一個(gè)最優(yōu)長(zhǎng)度的備選靜態(tài)密鑰作為目標(biāo)靜態(tài)密鑰,并將所述內(nèi)容特征值按照分組方式重組生成動(dòng)態(tài)密鑰,其中,所述動(dòng)態(tài)密鑰的長(zhǎng)度與所述目標(biāo)靜態(tài)密鑰的長(zhǎng)度相同;將所述動(dòng)態(tài)密鑰與所述目標(biāo)靜態(tài)密鑰進(jìn)行異或運(yùn)算,生成用于后續(xù)加密處理的混合密鑰。[0023]系統(tǒng)從待加密的源碼文件中提取文件塊,每個(gè)文件塊包含一定數(shù)量的代碼行。例如,對(duì)于一個(gè)具有5000行代碼的源碼文件,可以將其分為50個(gè)文件塊,每個(gè)文件塊包含100行代碼。系統(tǒng)會(huì)記錄每個(gè)文件塊的大小(如15KB)和行數(shù)信息(如100行)作為初始特征。[0024]系統(tǒng)提取源碼文件塊中的關(guān)鍵字段并統(tǒng)計(jì)頻率,關(guān)鍵字段包括但不限于編程語(yǔ)言下關(guān)鍵字段及其頻率:{"class":5,"public":12,"private":8,"if":25,"for":10,"return":15,"new":18}等。這些統(tǒng)計(jì)數(shù)據(jù)反映了源碼結(jié)構(gòu)特征。[0025]具體地,首先將文件大小和行數(shù)信息轉(zhuǎn)換為標(biāo)準(zhǔn)化數(shù)值(例如,將15KB轉(zhuǎn)換為15000,將100行轉(zhuǎn)換為100),再與關(guān)鍵字段頻率值一起組成特征矩陣。例如,特征矩陣可能為[15000,100,5,12,8,25,10,15,18...]。[0026]為了降低計(jì)算復(fù)雜度并提取關(guān)鍵特征,系統(tǒng)對(duì)多維特征矩陣進(jìn)行降維處理。系統(tǒng)首先計(jì)算特征矩陣的協(xié)方差矩陣,然后計(jì)算協(xié)方差矩陣的特征值和特征向量,選擇對(duì)應(yīng)最大的幾個(gè)特征值的特征向量,組成降維后的特征向量。例如,原始20維特征可以被降維為8維特征向量[1.25,0.87,-0.56,2.13,0.32,-1.45,0.91,0.22]。[0027]系統(tǒng)將特征向量通過(guò)哈希函數(shù)計(jì)算得到內(nèi)容特征值,這里選用SHA-256哈希算法,將8維特征向量連接成字符串后計(jì)算哈希值,得到一個(gè)256位的特征值,表示為64位十六進(jìn)制字符串。系統(tǒng)從預(yù)設(shè)的密鑰池中獲取靜態(tài)密鑰。密鑰池中包含多個(gè)不同長(zhǎng)度的備選靜態(tài)能包含100個(gè)不同的密鑰。[0028]系統(tǒng)根據(jù)內(nèi)容特征值的數(shù)值范圍選擇最優(yōu)長(zhǎng)度的備選靜態(tài)密鑰;例如,若特征值的第一個(gè)字節(jié)值在0-85范圍內(nèi),選擇128位密鑰;若在86-170范圍[0029]系統(tǒng)將內(nèi)容特征值按分組方式重組生成動(dòng)態(tài)密鑰,重組方式是將特征值的64個(gè)十六進(jìn)制字符分為32組,每組2個(gè)字符,然后將每組按照特定規(guī)則(如按照組號(hào)的奇偶性)重新排列。例如,可將奇數(shù)組和偶數(shù)組交替排列,得到重組后的特征值。若選擇的目標(biāo)靜態(tài)密鑰長(zhǎng)度為256位(64個(gè)十六進(jìn)制字符),則動(dòng)態(tài)密鑰長(zhǎng)度也為256位。[0030]系統(tǒng)將動(dòng)態(tài)密鑰與目標(biāo)靜態(tài)密鑰進(jìn)行異或運(yùn)算,生成混合密鑰。異或運(yùn)算按位進(jìn)行,具體過(guò)程是:將動(dòng)態(tài)密鑰和靜態(tài)密鑰轉(zhuǎn)換為二進(jìn)制形式,然后對(duì)應(yīng)位置進(jìn)行異或操作動(dòng)態(tài)密鑰(十六進(jìn)制):"8a7b2elf3c9d5a4b...";靜態(tài)密鑰(十六進(jìn)制):"7f6e5d4c3b2alf6e...";異或后結(jié)果(十六進(jìn)制):"f5154353079f4525...";這樣得到的混合密鑰既包含源碼文件內(nèi)容特征的動(dòng)態(tài)性,又具有靜態(tài)密鑰的隨機(jī)性,顯著提高了加密強(qiáng)度。該混合密鑰隨后用于源碼文件的實(shí)際加密處理,如通過(guò)AES-256算法對(duì)源碼內(nèi)容進(jìn)行加密。[0031]通過(guò)上述方法,即使攻擊者獲取了靜態(tài)密鑰,由于每個(gè)源碼文件塊的內(nèi)容特征不同,生成的動(dòng)態(tài)密鑰也不同,最終的混合密鑰對(duì)每個(gè)文件塊都是唯一的,大大增強(qiáng)了加密系統(tǒng)的安全性。同時(shí),此方法可有效抵抗統(tǒng)計(jì)分析攻擊和字典攻擊,提供了更為可靠的源碼保護(hù)機(jī)制。[0032]在一種可選的實(shí)施方式中,利用所述混合密鑰對(duì)所述源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù),最后采用橢圓曲線密碼算法對(duì)所述初級(jí)加密數(shù)據(jù)進(jìn)行二次加密得到最終加密數(shù)據(jù)包括:將所述源碼文件塊按照AES加密算法要求的數(shù)據(jù)塊大小進(jìn)行分組;對(duì)所述混合密鑰進(jìn)行動(dòng)態(tài)擴(kuò)展,根據(jù)所述源碼文件塊的分組數(shù)量,采用密鑰擴(kuò)展算法生成輪密鑰序列,其中,針對(duì)每一個(gè)分組數(shù)據(jù),在加密過(guò)程中使用不同的輪密鑰,且相鄰分組的輪密鑰之間具有關(guān)聯(lián)性變換;調(diào)用AES加密模塊,采用所述輪密鑰序列對(duì)分組后的源碼文件塊執(zhí)行加密運(yùn)算,得到初級(jí)加密數(shù)據(jù);基于預(yù)設(shè)的橢圓曲線參數(shù)初始化橢圓曲線密碼系統(tǒng),其中,所述橢圓曲線參數(shù)包將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密11數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密[0033]圖2為本發(fā)明實(shí)施例得到最終加密數(shù)據(jù)的流程示意圖,如圖2所示,接收待加密的源碼文件,例如可以是Java、Python、C++等編程語(yǔ)言割成若干源碼文件塊,每個(gè)文件塊大小可以設(shè)置為4KB。對(duì)于一個(gè)大小為100KB的源碼文件,會(huì)被分割成25個(gè)文件塊。[0034]系統(tǒng)生成混合密鑰,該混合密鑰由用戶輸入的口令密鑰和系統(tǒng)生成的隨機(jī)密鑰組合而成。例如,用戶輸入口令“Secure@2023”,系統(tǒng)生成128位隨機(jī)密鑰”8f7d6a9c2elb4f5a",通過(guò)哈希算法SHA-256將兩者組合生成最終的混合密鑰"a7c42e9f58b31d67e094fb2a5c1d8936[0035]在對(duì)源碼文件塊執(zhí)行AES加密得到初級(jí)加密數(shù)據(jù)的過(guò)程中,首先將源碼文件塊按于4KB的源碼文件塊需要分成256組。[0036]接著對(duì)混合密鑰進(jìn)行動(dòng)態(tài)擴(kuò)展,根據(jù)源碼文件塊的分組數(shù)量采用密鑰擴(kuò)展算法生成輪密鑰序列。假設(shè)采用AES-128算法,標(biāo)準(zhǔn)流程需要生成11個(gè)輪密鑰。本發(fā)明在此基礎(chǔ)上,為每個(gè)分組數(shù)據(jù)設(shè)計(jì)不同的輪密鑰,且相鄰分組的輪密鑰之間具有關(guān)聯(lián)性變換。[0037]具體實(shí)現(xiàn)方式為:對(duì)于第一個(gè)分組,使用原始混合密鑰"a7c42e9f58b31d67e094fb2a5cld8936”生成標(biāo)準(zhǔn)的11個(gè)輪密鑰;對(duì)于第二個(gè)分組,對(duì)第一個(gè)分組的最后一個(gè)輪密鑰執(zhí)行字節(jié)循環(huán)移位操作(例如右移3位)得到”936a7c42e9f58b31d67e094fb2a5cld",然后基于此生成新的11個(gè)輪密鑰;以此類(lèi)推,每個(gè)分組的初始輪密鑰都是前一個(gè)分組最后輪密鑰的變換結(jié)果。[0038]調(diào)用AES加密模塊,采用生成的輪密鑰序列對(duì)分組后的源碼文件塊執(zhí)行加密運(yùn)算。對(duì)于每個(gè)16字節(jié)的數(shù)據(jù)塊,使用對(duì)應(yīng)分組的輪密鑰序列進(jìn)行加密。如對(duì)第一個(gè)數(shù)據(jù)塊”publicclassMain",經(jīng)過(guò)AES-128加密后得到密文"e7a901d56f8c3b42d9763a1f4e2b8c[0039]系統(tǒng)將初級(jí)加密數(shù)據(jù)映射到橢圓曲線上的離散點(diǎn)集合。對(duì)于初級(jí)加密數(shù)據(jù)中的每32字節(jié)作為一組,前16字節(jié)映射為曲線上點(diǎn)的x坐標(biāo),后16字節(jié)用于計(jì)算y坐標(biāo)。通過(guò)求解曲線方程確定完整的曲線點(diǎn)。例如,對(duì)于數(shù)據(jù)片段"e7a901d56f8c3b42d9763alf4e2b8c5d7f52a8e643c1b9d2a85f6c7319e4b0",其映射到曲線上的點(diǎn)為(148395612930906425175952558522797914267,3613425095663425860440229[0040]系統(tǒng)會(huì)根據(jù)初級(jí)加密數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù)。熵值計(jì)算基于初級(jí)加密數(shù)據(jù)的字節(jié)分布情況,若熵值大于4.5,表示數(shù)據(jù)復(fù)雜度高,系統(tǒng)使用256位密鑰長(zhǎng)度和3次迭代;若熵值在3.5到4.5之間,使用224位密鑰長(zhǎng)度和4次迭代;若熵值小于3.5,使用192位密鑰長(zhǎng)度和5次迭代。例如,對(duì)于熵值為4.2的初級(jí)加密數(shù)據(jù),系統(tǒng)選擇224位密鑰長(zhǎng)度和4次迭代。[0041]在橢圓曲線加密過(guò)程中,系統(tǒng)生成隨機(jī)整數(shù)k(1≤k≤n-1)作為臨時(shí)私鑰。對(duì)于每個(gè)映射的曲線點(diǎn)P,計(jì)算kG得到公共點(diǎn)R,以及k·P得到共享點(diǎn)S。最終加密數(shù)據(jù)由R和S組成。[0042]例如,當(dāng)k=28734629,基點(diǎn)G為曲線上的一個(gè)特定點(diǎn),對(duì)于曲線點(diǎn)P,計(jì)算得到R=(672943521867435,984562178546372)和S=(237896543210498,534782109875643),加密結(jié)果為"6729435218674359845621785463722378965432104985347821098756430"。[0043]通過(guò)上述AES加密和橢圓曲線二次加密的雙重保護(hù),源碼文件得到高強(qiáng)度的安全保障,有效防止未授權(quán)訪問(wèn)和逆向工程。[0044]在一種可選的實(shí)施方式中,將所述初級(jí)加密數(shù)據(jù)映射到所述橢圓曲線上的離散點(diǎn)集合,并根據(jù)所述初級(jí)加密數(shù)據(jù)的熵值特征,動(dòng)態(tài)調(diào)整橢圓曲線的密鑰長(zhǎng)度和迭代次數(shù),執(zhí)行自適應(yīng)的橢圓曲線加密運(yùn)算包括:計(jì)算所述初級(jí)加密數(shù)據(jù)的比特流序列,并基于所述比特流序列計(jì)算香農(nóng)熵值作為數(shù)據(jù)熵值;根據(jù)所述數(shù)據(jù)熵值在預(yù)設(shè)的橢圓曲線族中進(jìn)行曲線選擇,具體包括:當(dāng)數(shù)據(jù)熵值大于第一閾值時(shí)選擇384位橢圓曲線,當(dāng)數(shù)據(jù)熵值大于第二閾值時(shí)選擇521位橢圓曲線,并獲取所選橢圓曲線對(duì)應(yīng)的曲線參數(shù),包括有限域的階數(shù)、基點(diǎn)生成元以及曲線系數(shù);將所述初級(jí)加密數(shù)據(jù)按照所選橢圓曲線的分組長(zhǎng)度要求進(jìn)行分段,得到數(shù)據(jù)段序列,并計(jì)算每個(gè)數(shù)據(jù)段序列的局部熵值;對(duì)所述數(shù)據(jù)段序列中的每個(gè)數(shù)據(jù)段,執(zhí)行以下映射操作:根據(jù)所述局部熵值利用Koblitz編碼將數(shù)據(jù)段序列轉(zhuǎn)換為域上的元素;通過(guò)橢圓曲線上的點(diǎn)乘運(yùn)算將域元素映射為曲線上的離散點(diǎn);將映射得到的離散點(diǎn)保存到點(diǎn)集合對(duì)所述點(diǎn)集合執(zhí)行橢圓曲線加密運(yùn)算,包括:使用調(diào)整后的滑動(dòng)窗口執(zhí)行標(biāo)量乘法運(yùn)算;按照調(diào)整后的迭代次數(shù)重復(fù)執(zhí)行點(diǎn)加運(yùn)算;使用調(diào)整后的密鑰長(zhǎng)度生成臨時(shí)會(huì)話密鑰;將加密運(yùn)算的輸出結(jié)果進(jìn)行字節(jié)序列化,并將序列化結(jié)果與參數(shù)調(diào)整記錄進(jìn)行組[0045]系統(tǒng)接收初級(jí)加密數(shù)據(jù),這些數(shù)據(jù)可以來(lái)自于第一輪對(duì)稱加密或散列處理后的結(jié)果。系統(tǒng)將初級(jí)加密數(shù)據(jù)映射到橢圓曲線上的離散點(diǎn)集合,并根據(jù)數(shù)據(jù)熵值特征動(dòng)態(tài)調(diào)整加密參數(shù)。[0046]在實(shí)際實(shí)施中,系統(tǒng)首先計(jì)算初級(jí)加密數(shù)據(jù)的比特流序列,然后計(jì)算其香農(nóng)熵值。例如,當(dāng)處理一個(gè)128字節(jié)的初級(jí)加密數(shù)據(jù)塊時(shí),系統(tǒng)將其轉(zhuǎn)換為二進(jìn)制序列后得到1024位比特流,統(tǒng)計(jì)各位出現(xiàn)的概率分布,假設(shè)"1"出現(xiàn)的概率為0.49,"0"出現(xiàn)的概率為0.51,則根據(jù)香農(nóng)熵公式計(jì)算熵值約為0.9994,表示數(shù)據(jù)混亂度接近理想狀態(tài)。[0047]在一個(gè)具體實(shí)施例中,預(yù)設(shè)了兩個(gè)閾值:第一閾值為0.75,第二閾值為0.9。當(dāng)熵值為0.9994大于第二閾值0.9時(shí),系統(tǒng)選擇521位橢圓曲線(如NISTP-521);若熵值大于第一閾值0.75但小于第二閾值,則選擇384位橢圓曲線(如NISTP-384);若熵值低于第一閾值,則選擇256位橢圓曲線(如NISTP-256)。系統(tǒng)隨后獲取所選曲線的參數(shù),包括有限域階數(shù)、基點(diǎn)生成元和曲線系數(shù)。[0048]以選擇的NISTP-521曲線為例,其有限域階數(shù)為2^521-1,曲線方程為y2=x3-3x+b,其中b為特定常數(shù),階數(shù)為n,是一個(gè)接近2^521的大素?cái)?shù)。[0049]系統(tǒng)然后將初級(jí)加密數(shù)據(jù)按照所選橢圓曲線的分組長(zhǎng)度要求進(jìn)行分段。例如,對(duì)于521位曲線,考慮到編碼效率和安全性,每次處理58字節(jié)(464位)數(shù)據(jù)。系統(tǒng)將128字節(jié)的初級(jí)加密數(shù)據(jù)分成3個(gè)完整的58字節(jié)段,剩余的數(shù)據(jù)填充處理。[0050]對(duì)于每個(gè)數(shù)據(jù)段,系統(tǒng)計(jì)算其局部熵值。例如,第一個(gè)58字節(jié)段的局部熵值計(jì)算為0.987,表示該段數(shù)據(jù)分布均勻性良好。[0051]系統(tǒng)對(duì)每個(gè)數(shù)據(jù)段執(zhí)行映射操作,根據(jù)局部熵值使用Koblitz編碼將數(shù)據(jù)段轉(zhuǎn)換為域上元素。在實(shí)施例中,假設(shè)第一段數(shù)據(jù)轉(zhuǎn)換后得到域元素m=243598762345982734623。然后通過(guò)點(diǎn)乘運(yùn)算將域元素映射為曲線上的離散點(diǎn)。具體地,系統(tǒng)嘗試找到x值使得x^3-3x+b是域中的平方數(shù),直到找到有效的x值和對(duì)應(yīng)的y值,形成曲線上的點(diǎn)(x,y)。[0052]此時(shí),系統(tǒng)已經(jīng)成功將所有數(shù)據(jù)段映射為橢圓曲線上的離散點(diǎn)集合{P1,P2,P3,[0053]針對(duì)該點(diǎn)集合,系統(tǒng)執(zhí)行自適應(yīng)的橢圓曲線加密運(yùn)算。首先,基于數(shù)據(jù)熵值調(diào)整滑動(dòng)窗口大小。在示例中,熵值為0.9994,系統(tǒng)設(shè)置窗口大小為6,相比標(biāo)準(zhǔn)的4位窗口提高了計(jì)算效率。[0054]同時(shí),系統(tǒng)根據(jù)熵值調(diào)整迭代次數(shù)。例如,對(duì)于高熵值(>0.9)的數(shù)據(jù),設(shè)置3次迭代;對(duì)于中等熵值(0.75-0.9),設(shè)置4次迭代;對(duì)于低熵值(<0.75),設(shè)置5次迭代。迭代次數(shù)[0055]系統(tǒng)還會(huì)根據(jù)熵值調(diào)整臨時(shí)會(huì)話密鑰的長(zhǎng)度。對(duì)于熵值0.9994的示例,系統(tǒng)生成一個(gè)256位的臨時(shí)會(huì)話密鑰k=38762873468723487264676,并使用該密鑰執(zhí)行點(diǎn)乘運(yùn)算C=k·P,其中P是映射后的點(diǎn)。[0056]系統(tǒng)將加密運(yùn)算結(jié)果進(jìn)行字節(jié)序列化,并將結(jié)果與參數(shù)調(diào)整記錄(如所選曲線類(lèi)錄參數(shù)信息,接著是加密后的點(diǎn)坐標(biāo)序列。[0057]通過(guò)這種方法,系統(tǒng)實(shí)現(xiàn)了根據(jù)數(shù)據(jù)特征自適應(yīng)調(diào)整橢圓曲線加密參數(shù)的技術(shù)機(jī)制,不僅提高了加密強(qiáng)度,還優(yōu)化了計(jì)算性能,特別適用于對(duì)安全性和性能有較高要求的應(yīng)用場(chǎng)景。[0058]在一種可選的實(shí)施方式中,所述運(yùn)行環(huán)境參數(shù)包括時(shí)間序列參數(shù)、硬件參數(shù)以及進(jìn)程行為參數(shù),其中所述時(shí)間序列參數(shù)為連續(xù)指令執(zhí)行的時(shí)間間隔值,所述硬件參數(shù)包括處理器序列號(hào)和主板唯一標(biāo)識(shí)碼,所述進(jìn)程行為參數(shù)包括進(jìn)程標(biāo)識(shí)變化次數(shù)和進(jìn)程層級(jí)標(biāo)[0059]對(duì)時(shí)間序列參數(shù)的采集是通過(guò)監(jiān)控連續(xù)指令執(zhí)行的時(shí)間間隔值來(lái)實(shí)現(xiàn)的。在實(shí)際實(shí)施中,系統(tǒng)會(huì)在計(jì)算機(jī)運(yùn)行過(guò)程中,通過(guò)系統(tǒng)底層接口每隔100毫秒采樣一次CPU執(zhí)行指令的時(shí)間間隔,記錄相鄰兩條指令執(zhí)行的時(shí)間差值。例如,若第一條指令在時(shí)間點(diǎn)T1(13:45:22.105)執(zhí)行,第二條指令在時(shí)間點(diǎn)T2(13:45:22.108)執(zhí)行,則記錄的時(shí)間間隔值為3毫秒。系統(tǒng)會(huì)連續(xù)采樣100個(gè)這樣的時(shí)間間隔值,形成一個(gè)時(shí)間序列數(shù)組[3,4,2,3,5,2,3,4,3,2,...,3],該數(shù)組將作為系統(tǒng)運(yùn)行環(huán)境參數(shù)的一部分。[0060]對(duì)于硬件參數(shù)的采集,本實(shí)施方式重點(diǎn)關(guān)注處理器序列號(hào)和主板唯一標(biāo)識(shí)碼。處理器序列號(hào)的獲取是通過(guò)調(diào)用底層CPUID指令來(lái)實(shí)現(xiàn)的。[0061]在具體實(shí)施過(guò)程中,系統(tǒng)通過(guò)調(diào)用操作系統(tǒng)提供的API接口,如在Windows系統(tǒng)中于主板唯一標(biāo)識(shí)碼,系統(tǒng)通過(guò)讀取主板BIOS中存儲(chǔ)的DMI(DesktopManagementInterface)信息來(lái)獲取,其中包含主板制造商、型號(hào)和序列號(hào)等信息,如"ASUS-ROG-Z270-9923ABCD4567"。這些硬件參數(shù)一般在系統(tǒng)啟動(dòng)時(shí)采集一次,并在整個(gè)監(jiān)測(cè)過(guò)程中保持不[0062]進(jìn)程行為參數(shù)的采集主要關(guān)注進(jìn)程標(biāo)識(shí)變化次數(shù)和進(jìn)程層級(jí)標(biāo)記。進(jìn)程標(biāo)識(shí)變化次數(shù)是指在監(jiān)測(cè)周期內(nèi)(通常為10分鐘),系統(tǒng)中進(jìn)程PID變化的總次數(shù)。例如,在一個(gè)10分鐘的周期內(nèi),如果系統(tǒng)中有5個(gè)進(jìn)程結(jié)束(PID消失)和8個(gè)新進(jìn)程創(chuàng)建(新PID出現(xiàn)),則進(jìn)程標(biāo)識(shí)變化次數(shù)記錄為13.這一參數(shù)可以反映系統(tǒng)中進(jìn)程活動(dòng)的頻繁程度,有助于識(shí)別異常的進(jìn)程行為。[0063]進(jìn)程層級(jí)標(biāo)記是通過(guò)構(gòu)建進(jìn)程樹(shù)來(lái)實(shí)現(xiàn)的。系統(tǒng)首先獲取當(dāng)前運(yùn)行的所有進(jìn)程列表,然后根據(jù)父子進(jìn)程關(guān)系構(gòu)建進(jìn)程樹(shù)。對(duì)于每個(gè)進(jìn)程,記錄其在進(jìn)程樹(shù)中的深度作為其層記為0;如果進(jìn)程B是A的子進(jìn)程,則其層級(jí)標(biāo)記為1;以此類(lèi)推。這樣,系統(tǒng)可以得到一個(gè)進(jìn)程層級(jí)標(biāo)記數(shù)組,如[0,1,1,2,2,2,3,1,2,3,3,4],表示系統(tǒng)中各進(jìn)程的層級(jí)分布。[0064]在一個(gè)具體的實(shí)施例中,某金融企業(yè)的交易系統(tǒng)采用該方法進(jìn)行安全監(jiān)測(cè)。系統(tǒng)每天會(huì)自動(dòng)采集三類(lèi)運(yùn)行環(huán)境參數(shù),并與歷史基準(zhǔn)值進(jìn)行比對(duì)。某日監(jiān)測(cè)發(fā)現(xiàn),盡管硬件參數(shù)保持不變,但時(shí)間序列參數(shù)的波動(dòng)范圍從正常的2-5毫秒變?yōu)楣潭ǖ?毫秒,同時(shí)進(jìn)程層級(jí)標(biāo)記數(shù)組中出現(xiàn)了異常的深層級(jí)(深度達(dá)到8層),進(jìn)程標(biāo)識(shí)變化次數(shù)也從平均每10分鐘13次增加到47次。系統(tǒng)立即發(fā)出安全警報(bào),運(yùn)維人員經(jīng)排查發(fā)現(xiàn)服務(wù)器被植入了一個(gè)隱藏在正常系統(tǒng)進(jìn)程深層的惡意程序,該程序試圖篡改交易數(shù)據(jù)并將信息外發(fā)。[0065]另一個(gè)實(shí)施例是在某辦公網(wǎng)絡(luò)中,系統(tǒng)通過(guò)監(jiān)測(cè)運(yùn)行環(huán)境參數(shù)發(fā)現(xiàn),某臺(tái)計(jì)算機(jī)的硬件參數(shù)在一夜之間發(fā)生了變化,處理器序列號(hào)從"Intel-7700K-89AB3342FD"變?yōu)椤盜ntel-7700K-89AB3342FF",盡管變化很小,但系統(tǒng)仍然捕捉到了這一異常,后續(xù)調(diào)查發(fā)現(xiàn)該計(jì)算機(jī)的物理硬件被替換,存在嚴(yán)重的物理安全隱患。[0066]通過(guò)上述實(shí)施方式,本技術(shù)方案能夠有效地基于運(yùn)行環(huán)境參數(shù)進(jìn)行安全監(jiān)測(cè),及時(shí)發(fā)現(xiàn)系統(tǒng)運(yùn)行中的異常情況,提升系統(tǒng)安全防護(hù)能力。[0067]在一種可選的實(shí)施方式中,通過(guò)實(shí)時(shí)監(jiān)測(cè)java虛擬機(jī)的運(yùn)行環(huán)境參數(shù),根據(jù)所述運(yùn)行環(huán)境參數(shù)的異常程度判定當(dāng)前運(yùn)行環(huán)境是否處于調(diào)試模式,若判定為調(diào)試模式,則終止解密操作并清空解密緩存包括:計(jì)算所述時(shí)間序列參數(shù)中相鄰時(shí)間間隔的平均值、標(biāo)準(zhǔn)差,將所述標(biāo)準(zhǔn)差與預(yù)設(shè)時(shí)間閾值比對(duì)得到時(shí)間異常分值;將所述硬件參數(shù)中的處理器序列號(hào)、主板唯一標(biāo)識(shí)碼與預(yù)存的基準(zhǔn)參數(shù)進(jìn)行匹配度計(jì)算得到硬件異常分值;根據(jù)單位時(shí)間內(nèi)的進(jìn)程標(biāo)識(shí)變化次數(shù)及進(jìn)程層級(jí)標(biāo)記計(jì)算進(jìn)程異常分值;對(duì)所述時(shí)間異常分值、硬件異常分值和進(jìn)程異常分值分別賦予權(quán)重系數(shù),將加權(quán)后的異常分值相加得到環(huán)境異常總分值;根據(jù)歷史監(jiān)測(cè)記錄確定基準(zhǔn)判定閾值,基于所述環(huán)境異??偡种档淖兓厔?shì),動(dòng)態(tài)調(diào)整所述基準(zhǔn)判定閾值,得到實(shí)時(shí)判定閾值,并將所述實(shí)時(shí)判定閾值劃分為三個(gè)防護(hù)等級(jí)區(qū)間;當(dāng)所述環(huán)境異??偡种滴挥诘谝环雷o(hù)等級(jí)區(qū)間時(shí),將環(huán)境參數(shù)的采樣時(shí)間間隔減小為原采樣時(shí)間間隔的一半,并記錄異常特征參數(shù);當(dāng)所述環(huán)境異常總分值位于第二防護(hù)等級(jí)區(qū)間時(shí),暫停當(dāng)前正在執(zhí)行的敏感操作并將關(guān)鍵數(shù)據(jù)復(fù)制到安全存儲(chǔ)區(qū)域;當(dāng)所述環(huán)cpu_id":"AMD-X86-64","proces隔序列。例如,時(shí)間戳序列為[1623456780,1623456782,1623456785],則間隔序列為[2,變?yōu)?QEMU-Virtual-CPU",主板標(biāo)識(shí)碼變?yōu)?Virtual-Platform",此時(shí)匹配度為0,score_[0072]系統(tǒng)計(jì)算進(jìn)程異常分值。系統(tǒng)監(jiān)測(cè)單位時(shí)間內(nèi)(例如10秒)進(jìn)程標(biāo)識(shí)變化次數(shù)process_change_count,正常情況下該值為0-2,調(diào)試狀態(tài)下可能達(dá)到5-10。同時(shí)檢測(cè)進(jìn)程境異常總分值total_score=weight_time*score_time+weight_hardware*score_*2.5+0.3*1.0+0.2*1.24=1.25+0.3+0.248[0074]系統(tǒng)基于歷史監(jiān)測(cè)記錄確定基準(zhǔn)判定閾值base_threshold。初始設(shè)置base_5分鐘內(nèi)total_score呈上升趨勢(shì)(最小二乘法計(jì)算斜率大于0.05),將基準(zhǔn)判定閾
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年市場(chǎng)分析與營(yíng)銷(xiāo)策略研究試題
- 網(wǎng)絡(luò)安全技術(shù)考試試題集2026版
- 2026年廚師職業(yè)技能等級(jí)認(rèn)證模擬題
- 2026年網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)實(shí)務(wù)指導(dǎo)題
- 2026年旅游產(chǎn)業(yè)規(guī)劃與目的地管理題庫(kù)
- 2026年交通應(yīng)急救援知識(shí)測(cè)試題庫(kù)
- 七上課文記敘文閱讀考點(diǎn)整-理學(xué)生版
- 未來(lái)五年甲魚(yú)養(yǎng)殖企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年淡水養(yǎng)殖企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年新能源汽車(chē)高壓連接器企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 教師心理素養(yǎng)對(duì)學(xué)生心理健康的影響研究-洞察及研究
- DGTJ08-10-2022 城鎮(zhèn)天然氣管道工程技術(shù)標(biāo)準(zhǔn)
- 公路工程質(zhì)量管理制度范本
- 廣東省廣州市八區(qū)聯(lián)考2025-2026學(xué)年生物高二上期末調(diào)研試題含解析
- 《中國(guó)臨床腫瘤學(xué)會(huì)(csco)小細(xì)胞肺癌診療指南(2025版)》
- 醫(yī)院醫(yī)療糾紛案例匯報(bào)
- 重癥醫(yī)學(xué)科進(jìn)修匯報(bào)
- 2025年基金會(huì)招聘筆試本科院校沖刺題庫(kù)
- 2025至2030鑄鐵產(chǎn)業(yè)行業(yè)市場(chǎng)深度研究及發(fā)展前景投資可行性分析報(bào)告
- 2025年高校行政管理崗位招聘面試指南與模擬題
- 醫(yī)療售后服務(wù)課件
評(píng)論
0/150
提交評(píng)論