一種固態(tài)硬盤數(shù)據(jù)加解密方法及固態(tài)硬盤系統(tǒng)的制作方法
【專利摘要】本發(fā)明適用于數(shù)據(jù)安全領(lǐng)域,提供了一種固態(tài)硬盤數(shù)據(jù)加解密方法及固態(tài)硬盤系統(tǒng)。該數(shù)據(jù)加解密方法包括:主機(jī)生成基于非對稱加密算法的公鑰私鑰對(k1,k2);將私鑰k2保存至固態(tài)硬盤中,將公鑰k1保存至主機(jī);在主機(jī)生成基于對稱加密算法的密鑰k3,通過私鑰k2對密鑰k3進(jìn)行簽名加密后保存至固態(tài)硬盤中;在系統(tǒng)初始化時(shí),主機(jī)通過公鑰k1對固態(tài)硬盤中被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3,固態(tài)硬盤通過明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密;當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)將明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)明文密鑰k3不被其他程序訪問。借此,本發(fā)明能提高固態(tài)硬盤的數(shù)據(jù)加密強(qiáng)度和數(shù)據(jù)安全性,并且保證了固態(tài)硬盤的讀寫性能。
【專利說明】—種固態(tài)硬盤數(shù)據(jù)加解密方法及固態(tài)硬盤系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,更具體地說是涉及一種固態(tài)硬盤數(shù)據(jù)加解密方法及固態(tài)硬盤系統(tǒng)。
【背景技術(shù)】
[0002]固態(tài)硬盤(Solid State Disk,簡稱SSD)是一種永久性存儲(chǔ)器,其與閃存、非永久性存儲(chǔ)器及同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)等一樣,可作為計(jì)算機(jī)外部存儲(chǔ)設(shè)備。固態(tài)硬盤具有讀寫速度快,低功耗,無噪音,抗震動(dòng),低熱量,體積小,工作范圍大的優(yōu)點(diǎn),廣泛應(yīng)用于軍事、車載、工控、視頻監(jiān)控、網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)終端、電力、醫(yī)療、航空等、導(dǎo)航設(shè)備等領(lǐng)域。
[0003]目前固態(tài)硬盤加解密的主流算法采用AES算法,AES (Advanced EncryptionStandard,高級加密標(biāo)準(zhǔn))算法使用幾種不同的方法來執(zhí)行排列和置換運(yùn)算。AES是一個(gè)迭代的、對稱密鑰分組的密碼,它可以使用128、192和256位密鑰,并且用128位(16字節(jié))分組加密和解密數(shù)據(jù)。與公共密鑰加密使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。迭代加密使用一個(gè)循環(huán)結(jié)構(gòu),在該循環(huán)中重復(fù)置換和替換輸入數(shù)據(jù)。但是單獨(dú)采用AES算法對固態(tài)硬盤數(shù)據(jù)進(jìn)行加密,加密強(qiáng)度以及數(shù)據(jù)安全性較低。
【發(fā)明內(nèi)容】
[0004]針對上述的缺陷,本發(fā)明的目的在于提供一種固態(tài)硬盤加解密方法及固態(tài)硬盤系統(tǒng),可以提高固態(tài)硬盤的數(shù)據(jù)加密強(qiáng)度和數(shù)據(jù)安全性,并且保證了固態(tài)硬盤的讀寫性能。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種固態(tài)硬盤數(shù)據(jù)加解密方法,包括:
[0006]主機(jī)生成基于非對稱加密算法的公鑰私鑰對(kl,k2);
[0007]將所述私鑰k2保存至固態(tài)硬盤中,將所述公鑰kl保存至所述主機(jī);
[0008]在主機(jī)生成基于對稱加密算法的密鑰k3,通過所述私鑰k2對所述密鑰k3進(jìn)行簽名加密后保存至所述固態(tài)硬盤中;
[0009]在系統(tǒng)初始化時(shí),所述主機(jī)通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3,所述固態(tài)硬盤通過所述明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密;
[0010]當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)所述固態(tài)硬盤將所述明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)所述明文密鑰k3不被其他程序訪問。
[0011]根據(jù)本發(fā)明的固態(tài)硬盤數(shù)據(jù)加解密方法,通過該密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密的步驟包括:
[0012]當(dāng)所述主機(jī)執(zhí)行寫請求時(shí),所述固態(tài)硬盤使用明文密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密;
[0013]當(dāng)所述主機(jī)執(zhí)行讀請求時(shí),所述固態(tài)硬盤使用明文密鑰k3對讀出的數(shù)據(jù)進(jìn)行解
r I I O[0014]根據(jù)本發(fā)明的固態(tài)硬盤數(shù)據(jù)加解密方法,在主機(jī)生成基于非對稱加密算法的公鑰私鑰對(kl,k2)的步驟中,所述非對稱加密算法為ECC算法;
[0015]在主機(jī)生成基于對稱加密算法的密鑰k3的步驟中,所述對稱加密算法為AES算法。
[0016]根據(jù)本發(fā)明的固態(tài)硬盤數(shù)據(jù)加解密方法,所述公鑰kl以及所述私鑰k2的長度大于160位。
[0017]根據(jù)本發(fā)明的固態(tài)硬盤數(shù)據(jù)加解密方法,通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之前還包括:
[0018]所述主機(jī)從所述固態(tài)硬盤讀取所述私鑰k2以及被所述私鑰k2加密的密鑰k3 ;
[0019]通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之后還包括:
[0020]所述主機(jī)將解密后的明文密鑰k3發(fā)送給所述固態(tài)硬盤。
[0021]本發(fā)明相應(yīng)提供一種固態(tài)硬盤系統(tǒng),包括主機(jī)以及與主機(jī)連接的固態(tài)硬盤,所述主機(jī)包括:
[0022]密鑰生成單元,用于生成基于非對稱加密算法的公鑰私鑰對(kl,k2)以及生成基于對稱加密算法的密鑰k3 ;
[0023]第一密鑰保存單元,用于保存所述密鑰生成單元所生成的公鑰kl ;
[0024]密鑰加密單元,用于將所述密鑰k3通過所述私鑰k2進(jìn)行加密,
[0025]密鑰解密單元,用于在系統(tǒng)初始化時(shí),根據(jù)所述公鑰kl將所述被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3 ;
[0026]所述固態(tài)硬盤包括:
[0027]第二密鑰保存單元,用于保存所述密鑰生成單元所述生成的私鑰k2以及被私鑰k2加密的密鑰k3 ;
[0028]數(shù)據(jù)加解密單元,用于通過所述明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密;
[0029]密鑰保護(hù)單元,用于當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)將所述明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)保護(hù)所述明文密鑰k3不被其他程序訪問。
[0030]根據(jù)本發(fā)明的固態(tài)硬盤系統(tǒng),所述數(shù)據(jù)加解密單元包括:
[0031]數(shù)據(jù)加密模塊,用于當(dāng)所述主機(jī)執(zhí)行寫請求時(shí),使用明文密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密;
[0032]數(shù)據(jù)解密模塊,用于當(dāng)所述主機(jī)執(zhí)行讀請求時(shí),使用明文密鑰k3對讀出的數(shù)據(jù)進(jìn)行解密。
[0033]根據(jù)本發(fā)明的固態(tài)硬盤系統(tǒng),所述非對稱加密算法為ECC算法;所述對稱加密算法為AES算法。
[0034]根據(jù)本發(fā)明的固態(tài)硬盤系統(tǒng),所述公鑰kl以及所述私鑰k2的長度大于160位。
[0035]根據(jù)本發(fā)明的固態(tài)硬盤系統(tǒng),所述主機(jī)還包括密鑰傳輸單元,用于在系統(tǒng)初始化時(shí)從所述固態(tài)硬盤讀取所述私鑰k2以及被所述私鑰k2加密的密鑰k3 ;或者用于在所述密鑰解密單元根據(jù)所述公鑰kl將所述被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3后,將解密后的明文密鑰k3發(fā)送給所述固態(tài)硬盤。
[0036]本發(fā)明采用對稱加密算法算法對固態(tài)硬盤的數(shù)據(jù)進(jìn)行加解密,通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行加密,雖然非對稱加密算法復(fù)雜,導(dǎo)致加解密速度慢,但本發(fā)明僅在系統(tǒng)初始化時(shí)通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行解密,因此在固態(tài)硬盤的實(shí)際運(yùn)行過程中,其數(shù)據(jù)處理性能和僅僅使用對稱加密算法的固態(tài)硬盤性能是沒有區(qū)別的,但是固態(tài)硬盤的加密強(qiáng)度因?yàn)閷ΨQ加密算法的密鑰的加密而被加強(qiáng)了很多。借此,本發(fā)明可以提高固態(tài)硬盤的數(shù)據(jù)加密強(qiáng)度和數(shù)據(jù)安全性,并且保證了固態(tài)硬盤的讀寫性能。
【專利附圖】
【附圖說明】
[0037]圖1為本發(fā)明固態(tài)硬盤系統(tǒng)的原理框圖;
[0038]圖2為本發(fā)明固態(tài)硬盤數(shù)據(jù)加解密方法的流程圖;
[0039]圖3為本發(fā)明固態(tài)硬盤數(shù)據(jù)加解密方法一種應(yīng)用實(shí)施例的流程圖。
【具體實(shí)施方式】
[0040]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0041]如圖1所示,本發(fā)明一種固態(tài)硬盤系統(tǒng)100,包括主機(jī)10以及與主機(jī)連接的固態(tài)硬盤20。主機(jī)10優(yōu)選為筆記本電腦、臺(tái)式電腦、服務(wù)器或平板電腦等,固態(tài)硬盤20安裝在主機(jī)10或獨(dú)立于主機(jī)10外。主機(jī)10包括密鑰生成單元11、第一密鑰保存單元12、密鑰機(jī)密單元13以及密鑰傳輸單元14。
[0042]密鑰生成單元11用于生成基于非對稱加密算法的公鑰私鑰對(kl,k2)以及生成基于對稱加密算法的密鑰k3。非對稱加密算法又名公開密鑰加密算法,非對稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公開密鑰才能解密。具體的,把Linux系統(tǒng)的熵池作為基點(diǎn),作為輸入值,生成公鑰kl和私鑰k2。該非對稱加密算法可以是RSA算法、Elgamal算法、背包算法以及ECC算法,本發(fā)明優(yōu)選采用ECC算法,且公鑰kl以及所述私鑰k2的長度大于160位,其安全強(qiáng)度和1024位的RSA算法相當(dāng)。
[0043]對稱加密算法指加密和解密使用相同密鑰的加密算法,在大多數(shù)的對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法為秘密密鑰算法或單密鑰算法。同樣的,對稱加密算法的密鑰也是通過Linux系統(tǒng)的熵池得到,可以作為隨機(jī)源。對稱加密算法包括AES算法、DES算法、TripleDES算法、RC2算法、RC4算法和Blowfish算法等,本發(fā)明優(yōu)選采用固態(tài)硬盤常用的AES算法。本發(fā)明優(yōu)選采用ECC加密算法作為非對稱算法,AES算法作為對稱加密算法,這兩個(gè)算法的加密強(qiáng)度相對更高。密鑰的生成不是本發(fā)明的重點(diǎn),因此在此不詳細(xì)說明,可采用現(xiàn)有技術(shù)中的密鑰生成方法。
[0044]第一密鑰保存單元12,用于保存密鑰生成單元11所生成的公鑰kl。
[0045]密鑰加密單元13,用于將密鑰k3通過私鑰k2進(jìn)行加密。
[0046]密鑰解密單元14,用于在系統(tǒng)初始化時(shí),根據(jù)公鑰kl將被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3。
[0047]密鑰傳輸單元15,用于在系統(tǒng)初始化時(shí)從固態(tài)硬盤20讀取所述私鑰k2以及被私鑰k2加密的密鑰k3 ;或者用于在密鑰解密單元14根據(jù)公鑰kl將被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3后,將解密后的明文密鑰k3發(fā)送給固態(tài)硬盤20。
[0048]固態(tài)硬盤20包括第二密鑰保存單元21、密鑰解密單元22、數(shù)據(jù)加解密單元23以及密鑰保護(hù)單元24。
[0049]第二密鑰保存單元21,用于保存主機(jī)10的密鑰生成單元11生成的私鑰k2以及被私鑰k2加密的密鑰k3。
[0050]數(shù)據(jù)加解密單元22,用于通過明文密鑰k3對固態(tài)硬盤20中的數(shù)據(jù)進(jìn)行加/解密。具體的,數(shù)據(jù)加解密單元22包括數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊,數(shù)據(jù)加密模塊用于當(dāng)主機(jī)10執(zhí)行寫請求時(shí),使用密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密;數(shù)據(jù)解密模塊用于當(dāng)主機(jī)10執(zhí)行讀請求時(shí),使用密鑰k3對讀出的數(shù)據(jù)進(jìn)行解密。
[0051]密鑰保護(hù)單元23,用于當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)將明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)保護(hù)明文密鑰k3不被其他程序訪問。當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí),具體可在固態(tài)硬盤20驅(qū)動(dòng)卸載時(shí)進(jìn)行刪除。從而系統(tǒng)掉電和關(guān)機(jī)時(shí),固態(tài)硬盤僅僅存儲(chǔ)了私鑰k3以及被私鑰k2被加密的密鑰k3,而數(shù)據(jù)被密鑰k3進(jìn)行了加密,若需對數(shù)據(jù)進(jìn)行解密,需要首先對密鑰k3進(jìn)行解密,提高了數(shù)據(jù)安全性。需要注意的時(shí),在系統(tǒng)運(yùn)行時(shí)需要保證明文密鑰k3不被其他程序訪問,明文密鑰k3僅僅被固態(tài)硬盤的加解密過程訪問,避免密鑰k3泄露,在內(nèi)核態(tài),主要由操作系統(tǒng)和CPU提供權(quán)限保護(hù)。另外,主機(jī)10對密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3,并將該明文密鑰k3傳輸至固態(tài)硬盤20后,在主機(jī)10也需要?jiǎng)h除私鑰k2以及密鑰k3,進(jìn)一步增強(qiáng)數(shù)據(jù)安全性。
[0052]相對于現(xiàn)有技術(shù),本發(fā)明采用對稱加密算法算法對固態(tài)硬盤20的數(shù)據(jù)進(jìn)行加解密,通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行加密,雖然非對稱加密算法復(fù)雜,導(dǎo)致加解密速度慢,但本發(fā)明僅在系統(tǒng)初始化時(shí)通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行解密,因此在固態(tài)硬盤的實(shí)際運(yùn)行過程中,其數(shù)據(jù)處理性能和僅僅使用對稱加密算法的固態(tài)硬盤性能是沒有區(qū)別的,但是固態(tài)硬盤的加密強(qiáng)度因?yàn)閷ΨQ加密算法的密鑰的加密而被加強(qiáng)了很多。借此,本發(fā)明可以提高固態(tài)硬盤的數(shù)據(jù)加密強(qiáng)度和數(shù)據(jù)安全性,并且保證了固態(tài)硬盤的讀寫性能。
[0053]如圖2所示,本發(fā)明相應(yīng)提供一種固態(tài)硬盤數(shù)據(jù)加解密方法,其通過如圖1所示的系統(tǒng)實(shí)現(xiàn),該方法包括:
[0054]步驟S201,主機(jī)生成基于非對稱加密算法的公鑰私鑰對(kl,k2)。本步驟通過主機(jī)10的密鑰生成單元11實(shí)現(xiàn)。其中公鑰為kl,私鑰為k2。該非對稱加密算法可以是RSA算法、Elgamal算法、背包算法以及ECC算法,本發(fā)明優(yōu)選采用ECC算法,且公鑰kl以及所述私鑰k2的長度大于160位,其安全強(qiáng)度和1024位的RSA算法相當(dāng)。
[0055]步驟S202,將私鑰k2保存至固態(tài)硬盤中,將公鑰kl保存至主機(jī)。本步驟通過第一密鑰保存單元12和第二密鑰保存單元21實(shí)現(xiàn)。
[0056]步驟S203,在主機(jī)生成基于對稱加密算法的密鑰k3,通過私鑰k2對密鑰k3進(jìn)行簽名加密后保存至固態(tài)硬盤中。本步驟通過主機(jī)10的密鑰生成單元11以及密鑰加密單元13實(shí)現(xiàn)。對稱加密算法包括AES算法、DES算法、TripleDES算法、RC2算法、RC4算法和Blowfish算法等,本發(fā)明優(yōu)選采用固態(tài)硬盤常用的AES算法。
[0057]步驟S204,在系統(tǒng)初始化時(shí),主機(jī)通過公鑰kl對固態(tài)硬盤中被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3,固態(tài)硬盤通過明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密。本步驟通過主機(jī)的密鑰解密單元14及固態(tài)硬盤20的數(shù)據(jù)加解密單元22實(shí)現(xiàn)。
[0058]步驟S205,當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)將所述明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)明文密鑰k3不被其他程序訪問。本步驟通過固態(tài)硬盤20的密鑰保護(hù)單元23實(shí)現(xiàn)。
[0059]優(yōu)選的是,步驟S204具體包括:當(dāng)主機(jī)執(zhí)行寫請求時(shí),固態(tài)硬盤使用密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密;當(dāng)主機(jī)執(zhí)行讀請求時(shí),固態(tài)硬盤使用密鑰k3對讀出的數(shù)據(jù)進(jìn)行解密。
[0060]優(yōu)選的是,步驟S204中,通過公鑰kl對所述固態(tài)硬盤中被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之前還包括:主機(jī)從所述固態(tài)硬盤讀取所述私鑰k2以及被所述私鑰k2加密的密鑰k3 ;通過公鑰kl對固態(tài)硬盤中被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之后還包括:主機(jī)將解密后的明文密鑰k3發(fā)送給固態(tài)硬盤。
[0061]圖3是本發(fā)明固態(tài)硬盤數(shù)據(jù)加解密方法一種應(yīng)用實(shí)施例的流程圖,在該應(yīng)用實(shí)施例中,采用AES算法作為對稱算法對數(shù)據(jù)進(jìn)行加密,采用ECC算法作為非對稱算法對AES密鑰進(jìn)行加密。
[0062]步驟S301,主機(jī)通過ECC算法得到公鑰私鑰密鑰對(kl,k2)。其中kl為公鑰,k2為私鑰。
[0063]步驟S302,對生成的密鑰對進(jìn)行分開存儲(chǔ),公鑰kl保存在主機(jī),私鑰k2保存在固態(tài)硬盤。私鑰k2—般保存在固態(tài)硬盤控制器的可寫部分(比如NOR FLASH),或者特定的NAND FLASH 位置。
[0064]步驟S303,主機(jī)選取合適的密鑰長度生成AES密鑰k3,并且使用ECC私鑰k2對該密鑰k3進(jìn)行加密并保存在固態(tài)硬盤。一般加密后的密鑰k3 —般也是保存在固態(tài)硬盤控制器的可寫部分(比如NOR FLASH),或者特定的NAND FLASH位置。
[0065]步驟S304,在系統(tǒng)進(jìn)行初始化時(shí),主機(jī)從固態(tài)硬盤獲取私鑰k2以及被私鑰k2加密的密鑰k3。
[0066]步驟S305,主機(jī)通過公鑰kl以及私鑰k2對被私鑰k2加密的密鑰k3進(jìn)行解密,生成明文密鑰k3.[0067]步驟S306,主機(jī)將明文密鑰k3發(fā)送至固態(tài)硬盤。為接下來的I/O讀寫做準(zhǔn)備。
[0068]步驟S307,當(dāng)固態(tài)硬盤進(jìn)行寫操作時(shí),使用AES密鑰k3的明文對數(shù)據(jù)進(jìn)行加密,然后保存到固態(tài)硬盤;當(dāng)固態(tài)硬盤進(jìn)行讀操作時(shí),使用AES密鑰的明文對數(shù)據(jù)進(jìn)行解密,再返回給主機(jī)。
[0069]步驟S308,當(dāng)固態(tài)硬盤系統(tǒng)停止運(yùn)行時(shí),AES密鑰k3的明文將刪除。具體可在固態(tài)硬盤驅(qū)動(dòng)卸載時(shí)進(jìn)行刪除。
[0070]綜上所述,本發(fā)明采用對稱加密算法算法對固態(tài)硬盤的數(shù)據(jù)進(jìn)行加解密,通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行加密,雖然非對稱加密算法復(fù)雜,導(dǎo)致加解密速度慢,但本發(fā)明僅在系統(tǒng)初始化時(shí)通過非對稱加密算法對對稱加密算法的密鑰進(jìn)行解密,因此在固態(tài)硬盤的實(shí)際運(yùn)行過程中,其數(shù)據(jù)處理性能和僅僅使用對稱加密算法的固態(tài)硬盤性能是沒有區(qū)別的,但是固態(tài)硬盤的加密強(qiáng)度因?yàn)閷ΨQ加密算法的密鑰的加密而被加強(qiáng)了很多。借此,本發(fā)明可以提高固態(tài)硬盤的數(shù)據(jù)加密強(qiáng)度和數(shù)據(jù)安全性,并且保證了固態(tài)硬盤的讀與性能。
[0071]當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種固態(tài)硬盤數(shù)據(jù)加解密方法,其特征在于,包括: 主機(jī)生成基于非對稱加密算法的公鑰私鑰對(kl,k2); 將所述私鑰k2保存至固態(tài)硬盤中,將所述公鑰kl保存至所述主機(jī); 在主機(jī)生成基于對稱加密算法的密鑰k3,通過所述私鑰k2對所述密鑰k3進(jìn)行簽名加密后保存至所述固態(tài)硬盤中; 在系統(tǒng)初始化時(shí),所述主機(jī)通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3,所述固態(tài)硬盤通過所述明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密; 當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)所述固態(tài)硬盤將所述明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)所述明文密鑰k3不被其他程序訪問。
2.根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)加解密方法,其特征在于,通過該密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密的步驟包括: 當(dāng)所述主機(jī)執(zhí)行寫請求時(shí),所述固態(tài)硬盤使用明文密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密; 當(dāng)所述主機(jī)執(zhí)行讀請求時(shí),所述固態(tài)硬盤使用明文密鑰k3對讀出的數(shù)據(jù)進(jìn)行解密。
3.根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)加解密方法,其特征在于,在主機(jī)生成基于非對稱加密算法的公鑰私鑰對(kl,k2)的步驟中,所述非對稱加密算法為ECC算法; 在主機(jī)生成基于對稱加密算法的密鑰k3的步驟中,所述對稱加密算法為AES算法。
4.根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)加解密方法,其特征在于,所述公鑰kl以及所述私鑰k2的長度大于16 0位。
5.根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)加解密方法,其特征在于,通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之前還包括: 所述主機(jī)從所述固態(tài)硬盤讀取所述私鑰k2以及被所述私鑰k2加密的密鑰k3 ;通過所述公鑰kl對所述固態(tài)硬盤中被所述私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3的步驟之后還包括: 所述主機(jī)將解密后的明文密鑰k3發(fā)送給所述固態(tài)硬盤。
6.一種固態(tài)硬盤系統(tǒng),包括主機(jī)以及與主機(jī)連接的固態(tài)硬盤,其特征在于,所述主機(jī)包括: 密鑰生成單元,用于生成基于非對稱加密算法的公鑰私鑰對(kl,k2)以及生成基于對稱加密算法的密鑰k3 ; 第一密鑰保存單元,用于保存所述密鑰生成單元所生成的公鑰kl ; 密鑰加密單元,用于將所述密鑰k3通過所述私鑰k2進(jìn)行加密, 密鑰解密單元,用于在系統(tǒng)初始化時(shí),根據(jù)所述公鑰kl將所述被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3 ; 所述固態(tài)硬盤包括: 第二密鑰保存單元,用于保存所述密鑰生成單元所述生成的私鑰k2以及被私鑰k2加密的密鑰k3 ; 數(shù)據(jù)加解密單元,用于通過所述明文密鑰k3對固態(tài)硬盤中的數(shù)據(jù)進(jìn)行加/解密; 密鑰保護(hù)單元,用于當(dāng)系統(tǒng)掉電和關(guān)機(jī)時(shí)將所述明文密鑰k3進(jìn)行刪除,且在系統(tǒng)運(yùn)行時(shí)保護(hù)所述明文密鑰k3不被其他程序訪問。
7.根據(jù)權(quán)利要求6所述的固態(tài)硬盤系統(tǒng),其特征在于,所述數(shù)據(jù)加解密單元包括: 數(shù)據(jù)加密模塊,用于當(dāng)所述主機(jī)執(zhí)行寫請求時(shí),使用明文密鑰k3對寫入的數(shù)據(jù)進(jìn)行加密; 數(shù)據(jù)解密模塊,用于當(dāng)所述主機(jī)執(zhí)行讀請求時(shí),使用明文密鑰k3對讀出的數(shù)據(jù)進(jìn)行解r I I O
8.根據(jù)權(quán)利要求6所述的固態(tài)硬盤系統(tǒng),其特征在于,所述非對稱加密算法為ECC算法;所述對稱加密算法為AES算法。
9.根據(jù)權(quán)利要求6所述的固態(tài)硬盤系統(tǒng),其特征在于,所述公鑰kl以及所述私鑰k2的長度大于160位。
10.根據(jù)權(quán)利要求6所述的固態(tài)硬盤系統(tǒng),其特征在于,所述主機(jī)還包括密鑰傳輸單元,用于在系統(tǒng)初始化時(shí)從所述固態(tài)硬盤讀取所述私鑰k2以及被所述私鑰k2加密的密鑰k3 ;或者用于在所述密 鑰解密單元根據(jù)所述公鑰kl將所述被私鑰k2加密的密鑰k3進(jìn)行解密變?yōu)槊魑拿荑€k3后,將解密后的明文密鑰k3發(fā)送給所述固態(tài)硬盤。
【文檔編號】G06F12/14GK103440209SQ201310305728
【公開日】2013年12月11日 申請日期:2013年7月19日 優(yōu)先權(quán)日:2013年7月19日
【發(fā)明者】馮旭剛 申請人:記憶科技(深圳)有限公司