專(zhuān)利名稱(chēng):一種數(shù)據(jù)加密保護(hù)及解密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)信息的保護(hù)方法,特別涉及一種利用SCE國(guó)家標(biāo) 準(zhǔn)算法進(jìn)行高效數(shù)據(jù)加密保護(hù)和解密的方法。
背景技術(shù):
自從1976年迪菲(Diffie)和赫爾曼(Hellman)提出公鑰加密體制的思 想后,密碼學(xué)家和數(shù)學(xué)家為了該思想的具體實(shí)現(xiàn)已經(jīng)研究了超過(guò)了三十年,但 到目前為止,安全有效的公鑰加密體制仍是非常有限的,依據(jù)其基于的難題, 大致可以將其分為三類(lèi)基于對(duì)大數(shù)分解難題的加密體制、基于有限域離散對(duì) 數(shù)問(wèn)題的加密體制和基于橢圓曲線離散對(duì)數(shù)問(wèn)題的加密體制。其中,由于還沒(méi) 有找到解決橢圓曲線離散對(duì)數(shù)問(wèn)題的次(亞)指數(shù)時(shí)間算法,所以基于橢圓曲 線離散對(duì)數(shù)問(wèn)題的加密體制具有前兩類(lèi)加密體制無(wú)法比擬的優(yōu)點(diǎn),例如在相 同的安全強(qiáng)度下,系統(tǒng)參數(shù)和密鑰的尺寸較短(如160bits的橢圓曲線公鑰密 碼(Elliptic Curve Cryptography,簡(jiǎn)稱(chēng)ECC )和1024bits的RSA具有相當(dāng)?shù)陌?全強(qiáng)度),選擇余地較大等。在現(xiàn)有技術(shù)中有關(guān)使用SCE國(guó)家標(biāo)準(zhǔn)算法進(jìn)行數(shù)據(jù)加密技術(shù)仍是空白, 尚未發(fā)現(xiàn)與該主題相關(guān)或者相類(lèi)似的文獻(xiàn)報(bào)道。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述現(xiàn)有數(shù)據(jù)加密保護(hù)方法所存在的不足,而提供一種采用了 國(guó)家標(biāo)準(zhǔn)算法SCE的非對(duì)稱(chēng)算法,且對(duì)稱(chēng)算法采用3DES的數(shù)據(jù)加密保護(hù)方法 及解密方法,該方法達(dá)到數(shù)據(jù)加密處理速度快效果,其使用緊湊性加密數(shù)據(jù)格 式,有效減少加密內(nèi)容冗余。為了達(dá)到上述目的,本發(fā)明采用的一種數(shù)據(jù)加密保護(hù)方法,該方法包括如 下步驟-(1)定義緊湊性數(shù)據(jù)加密格式;(2) 利用3DES算法生成3DES對(duì)稱(chēng)密鑰;(3) 利用SCE國(guó)家標(biāo)準(zhǔn)算法對(duì)3DES對(duì)稱(chēng)密鑰進(jìn)行加密;(4) 利用SHA1算法計(jì)算數(shù)據(jù)內(nèi)容的摘要值,形成原文SHA1摘要值;(5) 利用SCE國(guó)家標(biāo)準(zhǔn)算法對(duì)原文數(shù)據(jù)摘要進(jìn)行數(shù)據(jù)簽名;(6) 利用加密后的3DES對(duì)稱(chēng)密鑰對(duì)數(shù)據(jù)進(jìn)行加密。 上述方法中使用標(biāo)簽定長(zhǎng)的編碼方式,實(shí)現(xiàn)數(shù)據(jù)流的連接讀取或輸入,對(duì)于大數(shù)據(jù)原文不需要預(yù)分配大內(nèi)存塊,有效減少內(nèi)存空間的使用。上述緊湊性數(shù)據(jù)格式由版本、算法類(lèi)型、密鑰長(zhǎng)度、密文長(zhǎng)度、對(duì)稱(chēng)密鑰、密文內(nèi)容依次組成。所述密文內(nèi)容由簽名長(zhǎng)度、原文長(zhǎng)度、簽名、原文內(nèi)容依次組成。 與上述加密保護(hù)方法配套使用的解密方法,其主要包括以下步驟(1) 讀取大于64個(gè)字節(jié)原始密文到解密緩存區(qū);(2) 解析數(shù)據(jù),得到版本、算法類(lèi)型、密鑰長(zhǎng)度、密文長(zhǎng)度;(3) 根據(jù)密鑰長(zhǎng)度,從解密緩存區(qū)讀取已加密的3DES對(duì)稱(chēng)密鑰;(4) 使用SCE算法解密3DES對(duì)稱(chēng)密鑰,得到3DES對(duì)稱(chēng)密鑰(5) 使用對(duì)稱(chēng)密鑰解密原始密文;(6) 解析數(shù)據(jù),得到簽名長(zhǎng)度、原文長(zhǎng)度;(7) 根據(jù)簽名長(zhǎng)度,從解密緩沖區(qū)讀取簽名值;(8) 讀取固定長(zhǎng)度原始密文到解密緩沖區(qū);(9) 使用對(duì)稱(chēng)密鑰解密原始密文;(10) 將解密數(shù)據(jù)寫(xiě)入輸出流;(11) 將解密數(shù)據(jù)更新到摘要生成器;(12) 返回步驟(8)操作,直到原始密文讀取結(jié)束。 根據(jù)上述技術(shù)方案得到的本發(fā)明使用SCE加密算法對(duì)數(shù)據(jù)進(jìn)行加密保護(hù),同時(shí)使用SCE簽名算法對(duì)數(shù)據(jù)摘要值進(jìn)行簽名,實(shí)現(xiàn)數(shù)據(jù)的加密及數(shù)據(jù)內(nèi)容 防篡改數(shù)據(jù);其還具有加密處理速度快等優(yōu)點(diǎn),使用緊湊性加密數(shù)據(jù)格式,達(dá) 到減少加密內(nèi)容冗余效果。
以下結(jié)合附圖和具體實(shí)施方式
來(lái)進(jìn)一步說(shuō)明本發(fā)明。
圖1為本發(fā)明中數(shù)據(jù)格式的示意圖。
具體實(shí)施例方式為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解, 下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。本發(fā)明使用SCE進(jìn)行數(shù)據(jù)加密保護(hù),使用特定加密格式,提高數(shù)據(jù)加密 效率。為達(dá)到上述目的采用了如下的技術(shù)方案(1) 使用SEC國(guó)家標(biāo)準(zhǔn)算法進(jìn)行非對(duì)稱(chēng)數(shù)據(jù)簽名及非對(duì)稱(chēng)數(shù)據(jù)加密。(2) 使用3DES算法進(jìn)行數(shù)據(jù)對(duì)稱(chēng)加密。(3) 使用SHA1算法進(jìn)行數(shù)據(jù)內(nèi)容的摘要值計(jì)算。(4) 使用緊湊性數(shù)據(jù)格式進(jìn)行密文封閉。(5) 使用標(biāo)簽定長(zhǎng)的編碼方式,實(shí)現(xiàn)數(shù)據(jù)流的連接讀取或輸入,對(duì)于大數(shù)據(jù) 原文不需要預(yù)分配大內(nèi)存塊,有效減少內(nèi)存空間的使用。這里所涉及的緊湊性數(shù)據(jù)格式如圖l所示,對(duì)其上的內(nèi)容定義如下 版本 高位4 7bit。 0x01為版本1, 0x0f為版本16。 算法類(lèi)型低位0 3bit。 0x00為NID—GB192曲線,0x01為NID—GB256 曲線,其它保留。密鑰長(zhǎng)度1字節(jié)。標(biāo)識(shí)3DES對(duì)稱(chēng)密鑰長(zhǎng)度。密文長(zhǎng)度4個(gè)字節(jié)。被3DES加密后的密文,最小1字節(jié),最大2八32-1。 對(duì)稱(chēng)密鑰被SCE算法加密的3DES密鑰。 密文內(nèi)容被3DES算法加密的數(shù)據(jù)密文。 對(duì)于密文結(jié)構(gòu)有以下定義簽名長(zhǎng)度1字節(jié)。摘要值的SCE簽名值長(zhǎng)度。原文長(zhǎng)度4字節(jié)。原始數(shù)據(jù)內(nèi)容長(zhǎng)度,最小1字節(jié),最大2A32-1。簽名摘要值的SCE簽名值。原文原始數(shù)據(jù)內(nèi)容?;谏鲜鲈?,本發(fā)明進(jìn)行數(shù)據(jù)加密的流程如下 步驟l,定義版本、算法類(lèi)型,填充輸出緩存區(qū)第l字節(jié); 步驟2,選擇3DES密鑰長(zhǎng)度(112bit或192bit或其它),填充輸出緩存區(qū)第 2字節(jié);步驟3,生成3DES對(duì)稱(chēng)密鑰;步驟4,使用SCE算法對(duì)3DES對(duì)稱(chēng)密鑰進(jìn)行加密,將加密后的對(duì)稱(chēng)密鑰 填充輸出緩存區(qū)第7字節(jié)后空間;步驟5,根據(jù)算法類(lèi)型,確認(rèn)簽名長(zhǎng)度,填充加密緩存區(qū)第一字節(jié); 步驟6,將原文長(zhǎng)度填充加密緩存區(qū)第2 5字節(jié); 步驟7,形成原文SHA1摘要值;步驟8,使用SCE算法對(duì)摘要值進(jìn)行簽名,填充簽名值到加密緩存區(qū)第6 字節(jié)后空間;步驟9,填充一定長(zhǎng)度原文內(nèi)容到加密緩存區(qū);步驟IO,使用3DES對(duì)加密緩存區(qū)進(jìn)行數(shù)據(jù)加密,輸出密文填充到輸入緩 存區(qū)密文段;步驟ll,將輸入緩存區(qū)寫(xiě)入輸出流;步驟12,輸入緩存區(qū)偏移量置0,加密緩存區(qū)偏移量置0; 步驟13,重復(fù)第9步,直到原文數(shù)據(jù)讀取結(jié)束。上述步驟進(jìn)行了數(shù)據(jù)的加密和保護(hù),若要對(duì)加密后的數(shù)據(jù)進(jìn)行解密還原通 過(guò)以下步驟實(shí)現(xiàn)。 (al)讀取大于64個(gè)字節(jié)原始密文到解密緩存區(qū); (a2)解析數(shù)據(jù),得到版本、算法類(lèi)型、密鑰長(zhǎng)度、密文長(zhǎng)度; (a3)根據(jù)密鑰長(zhǎng)度,從解密緩存區(qū)讀取已加密的3DES對(duì)稱(chēng)密鑰; (a4)使用SCE算法解密3DES對(duì)稱(chēng)密鑰,得到3DES對(duì)稱(chēng)密鑰 (a5)使用對(duì)稱(chēng)密鑰解密原始密文; (a6)解析數(shù)據(jù),得到簽名長(zhǎng)度、原文長(zhǎng)度; (a7)根據(jù)簽名長(zhǎng)度,從解密緩沖區(qū)讀取簽名值;(a8)讀取固定長(zhǎng)度原始密文到解密緩沖區(qū);(a9)使用對(duì)稱(chēng)密鑰解密原始密文;(a10)將解密數(shù)據(jù)寫(xiě)入輸出流;(all)將解密數(shù)據(jù)更新到摘要生成器;(al2)返回步驟(a8)操作,直到原始密文讀取結(jié)束。上述狼操作流程實(shí)現(xiàn)了基于國(guó)家標(biāo)準(zhǔn)算法SCE對(duì)數(shù)據(jù)進(jìn)行加密保護(hù)和解 密的方法。以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè) 的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書(shū)中 描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明 還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本 發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書(shū)及其等效物界定。
權(quán)利要求
1、一種數(shù)據(jù)加密保護(hù)方法,其特征在于,該方法包括如下步驟(1)定義緊湊性數(shù)據(jù)加密格式;(2)利用3DES算法生成3DES對(duì)稱(chēng)密鑰;(3)利用SCE國(guó)家標(biāo)準(zhǔn)算法對(duì)3DES對(duì)稱(chēng)密鑰進(jìn)行加密;(4)利用SHA1算法計(jì)算數(shù)據(jù)內(nèi)容的摘要值,形成原文SHA1摘要值;(5)利用SCE國(guó)家標(biāo)準(zhǔn)算法對(duì)原文數(shù)據(jù)摘要進(jìn)行數(shù)據(jù)簽名;(6)利用加密后的3DES對(duì)稱(chēng)密鑰對(duì)數(shù)據(jù)進(jìn)行加密。
2、 根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)加密保護(hù)方法,其特征在于,所述方法中使用標(biāo)簽定長(zhǎng)的編碼方式,實(shí)現(xiàn)數(shù)據(jù)流的連接讀取或輸入,對(duì)于大數(shù)據(jù)原文不需要預(yù)分配大內(nèi)存塊,有效減少內(nèi)存空間的使用。
3、 根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)加密保護(hù)方法,其特征在于,所述緊湊性數(shù)據(jù)格式由版本、算法類(lèi)型、密鑰長(zhǎng)度、密文長(zhǎng)度、對(duì)稱(chēng)密鑰、密文內(nèi)容依次組成。
4、 根據(jù)權(quán)利要求3所述的一種數(shù)據(jù)加密保護(hù)方法,其特征在于,所述密文內(nèi)容由簽名長(zhǎng)度、原文長(zhǎng)度、簽名、原文內(nèi)容依次組成。
5、 與上述加密保護(hù)方法配套使用的解密方法,其特征在于,所述解密方法主要包括以下步驟(1) 讀取大于64個(gè)字節(jié)原始密文到解密緩存區(qū);(2) 解析數(shù)據(jù),得到版本、算法類(lèi)型、密鑰長(zhǎng)度、密文長(zhǎng)度;(3) 根據(jù)密鑰長(zhǎng)度,從解密緩存區(qū)讀取已加密的3DES對(duì)稱(chēng)密鑰;(4) 使用SCE算法解密3DES對(duì)稱(chēng)密鑰,得到3DES對(duì)稱(chēng)密鑰(5) 使用對(duì)稱(chēng)密鑰解密原始密文;(6) 解析數(shù)據(jù),得到簽名長(zhǎng)度、原文長(zhǎng)度;(7) 根據(jù)簽名長(zhǎng)度,從解密緩沖區(qū)讀取簽名值;(8) 讀取固定長(zhǎng)度原始密文到解密緩沖區(qū);(9) 使用對(duì)稱(chēng)密鑰解密原始密文;(10) 將解密數(shù)據(jù)寫(xiě)入輸出流;(11) 將解密數(shù)據(jù)更新到摘要生成器;(12)返回步驟(8)操作,直到原始密文讀取結(jié)束,
全文摘要
本發(fā)明公開(kāi)了一種數(shù)據(jù)加密保護(hù)方法,該方法包括如下(1)定義緊湊性數(shù)據(jù)加密格式;(2)利用3DES算法生成3DES對(duì)稱(chēng)密鑰;(3)利用SCE算法對(duì)3DES對(duì)稱(chēng)密鑰進(jìn)行加密;(4)形成SHA1摘要值;(5)利用SCE算法對(duì)摘要進(jìn)行數(shù)據(jù)簽名;(6)利用3DES對(duì)稱(chēng)密鑰對(duì)數(shù)據(jù)進(jìn)行加密。所述解密方法如下(1)讀取原始密文;(2)解析數(shù)據(jù);(3)讀取已加密的3DES對(duì)稱(chēng)密鑰(4)解密對(duì)稱(chēng)密鑰;(5)解密原始密文;(6)解析數(shù)據(jù);(7)讀取簽名值;(8)讀取原始密文;(9)解密原始密文流;(10)將解密數(shù)據(jù)寫(xiě)入輸出流;(11)將解密數(shù)據(jù)更新到摘要生成器;(12)返回步驟(8)操作,直到原始密文讀取結(jié)束。本發(fā)明實(shí)現(xiàn)數(shù)據(jù)的加密及數(shù)據(jù)內(nèi)容防篡改數(shù)據(jù)。
文檔編號(hào)H04L9/32GK101626293SQ20081004362
公開(kāi)日2010年1月13日 申請(qǐng)日期2008年7月9日 優(yōu)先權(quán)日2008年7月9日
發(fā)明者偉 任, 政 曾, 楊茂江, 俊 許, 譚武征 申請(qǐng)人:上海格爾軟件股份有限公司