王穎 趙莎莎 錢程 陳華興 張四化 陳麗
摘? 要:為改進(jìn)對稱加密算法所導(dǎo)致的易破解問題,文章采用RSA非對稱算法完成嵌入式存儲(chǔ)算法的簡化編碼。同時(shí)在STC89C51平臺(tái)上通過物理按鍵實(shí)現(xiàn)密鑰輸入操作,在實(shí)現(xiàn)存儲(chǔ)內(nèi)容明文與密文轉(zhuǎn)化的基礎(chǔ)上,運(yùn)用TTL去抖算法,保證了按鍵響應(yīng)的實(shí)時(shí)性以及識(shí)別按鍵準(zhǔn)確性。這種基于RSA算法的嵌入式存儲(chǔ)加密方案極大提高存儲(chǔ)設(shè)備的安全性能,對其他存儲(chǔ)加密系統(tǒng)設(shè)計(jì)具有重要的借鑒意義。
關(guān)鍵詞:RSA算法;89C51;非對稱加密;加密存儲(chǔ)
1? ? 加密算法簡要介紹
1.1? 加密算法的現(xiàn)狀
人們對于信息安全需求日益增加,各種各樣的加密算法孕育而出。密碼作為目前最常用的安全機(jī)制,已經(jīng)深入到日常生活的各個(gè)方面,從網(wǎng)上交易到發(fā)布微博,處處都會(huì)用到密碼。早在20世紀(jì)80年代初,Grampp FT等[1]就提出密碼暴力破解的方法,來驗(yàn)證Unix系統(tǒng)的安全性。盡管密碼暴力破解的研究由來已久,但密鑰的單一性使得暴力破解性能相比計(jì)算機(jī)科學(xué)的其他領(lǐng)域并沒有取得飛躍性的進(jìn)展[2]。明文具有冗余度的特點(diǎn),因此攻擊或破譯密碼的方法主要有3種:窮舉法[3]、統(tǒng)計(jì)分析攻擊[4]、數(shù)學(xué)分析攻擊[5]。
1.2? 硬件安全機(jī)制的重要意義
在眾多信息安全領(lǐng)域中,計(jì)算平臺(tái)的安全成為影響信息安全、信息社會(huì)發(fā)展的關(guān)鍵性問題。作為計(jì)算平臺(tái)運(yùn)行機(jī)制能夠正常工作的基礎(chǔ),硬件安全機(jī)制是保障計(jì)算平臺(tái)硬件正常運(yùn)行的核心機(jī)制,也是計(jì)算平臺(tái)安全的源頭。作為與通用計(jì)算機(jī)架構(gòu)上相近的嵌入式系統(tǒng),隨著集成電路的發(fā)展,其使用數(shù)量以及應(yīng)用范圍正不斷擴(kuò)大。因此,對于嵌入式系統(tǒng)計(jì)算的安全性問題應(yīng)該引起重視,這也是本文的立題所在。本文通過研究嵌入式系統(tǒng)計(jì)算的特點(diǎn),以實(shí)現(xiàn)嵌入式系統(tǒng)安全計(jì)算為目標(biāo),從硬件安全機(jī)制的角度研究如何在嵌入式計(jì)算平臺(tái)上實(shí)現(xiàn)可信計(jì)算的方法和實(shí)施機(jī)制[6]。
1.3? 常見加密算法的優(yōu)缺點(diǎn)
通過收集幾種常見的加密算法,對其進(jìn)行優(yōu)缺點(diǎn)對比,得出如表1所示的3種算法優(yōu)缺點(diǎn)對比。
2? ? 方案介紹
鑒于對硬件存儲(chǔ)安全機(jī)制的保證,對比了3種基本算法發(fā)現(xiàn):雖然RSA算法利用非對稱密鑰加解密速度較慢,但相較其他算法,RSA加密算法安全性更高。本文選取安全性較高的RSA算法,并對其進(jìn)行固定取值簡化,提高效率,并增加物理按鍵,提高安全性??紤]到大多低級矩陣鍵盤實(shí)際運(yùn)用中存在的機(jī)械誤差,借助TTL去抖算法,增強(qiáng)信息輸入準(zhǔn)確性,進(jìn)一步提高安全性。當(dāng)RSA密鑰強(qiáng)度較高時(shí),性能受限尤為突出。按照RSA加密算法的理論,需要對每一個(gè)數(shù)據(jù)進(jìn)行計(jì)算,包含加密后的數(shù)據(jù)、加密前數(shù)據(jù)公共密鑰以及對應(yīng)模數(shù)。為了提高安全性,公鑰的取值不宜過小,這樣在加密過程中就增加了整數(shù)求冪運(yùn)算的時(shí)間復(fù)雜度。
本方案借助RSA算法存放信息,使用公鑰對明文進(jìn)行加密已得到所對應(yīng)密文,而解密時(shí)則需要使用私鑰對要解密的密文進(jìn)行解碼,才可得到所存儲(chǔ)的明文內(nèi)容,若密碼錯(cuò)誤則只能得到加密后的密文。在這一過程中,硬件平臺(tái)提供輸入和存儲(chǔ)系統(tǒng)以承擔(dān)算法運(yùn)算的正常執(zhí)行。
為方便實(shí)際測試,本方案所有測試均在51單片機(jī)平臺(tái)實(shí)現(xiàn)。通過對RSA非對稱算法添加延遲函數(shù)防止暴力解碼,并引用多素?cái)?shù)的方法,使之相乘得出相對較大的模數(shù),從而提高運(yùn)算效率與安全性。本方案現(xiàn)已完成RSA算法的優(yōu)化,且已將算法編寫為可執(zhí)行程序,同時(shí),將程序移植在單片機(jī)上,實(shí)現(xiàn)了借助單片機(jī)進(jìn)行簡單數(shù)組的存儲(chǔ),完成預(yù)期驗(yàn)證。
3? ? 方案原理
3.1? RSA算法的原理
RSA算法主要是利用多素?cái)?shù)的方法,首先,將明文分組并數(shù)字化,每個(gè)數(shù)字化分組明文的長度不大于logn;其次,對每個(gè)明文分組依次進(jìn)行加解密運(yùn)算,通過隨機(jī)選擇待生成的素?cái)?shù)個(gè)數(shù),生成多個(gè)較小的素?cái)?shù),并使之相乘,得出相對較大的模數(shù)。因?yàn)镽SA算法所需為兩互質(zhì)數(shù),故而該算法使用時(shí)需p和q互為質(zhì)數(shù);n為p與q的乘積,依據(jù)歐拉公式可知,不大于n且與n互質(zhì)的整數(shù)個(gè)數(shù)為R=(p-1)×(q-1);選擇出一個(gè)整數(shù)e與R互質(zhì)且滿足e d×e=1(mod R) 其中,(n,e)是公鑰,(n,d)是私鑰。因?yàn)楣€和私鑰值不同,可進(jìn)行加密和解密編碼,其具有非對稱性,實(shí)現(xiàn)過程如圖1所示。 3.2? 矩陣鍵盤原理圖 硬件部分采用STC89C51單片機(jī),因?yàn)橹芯仃囨I盤含有20(5×4)個(gè)按鍵,所以可以實(shí)現(xiàn)更多功能。本程序中就增加了除9個(gè)數(shù)字(1~9)可以加密之外,還添加了數(shù)字以外的5個(gè)字母(A~E)可以加密,還有兩個(gè)按鍵分別控制退格及加密,功能的實(shí)現(xiàn)顯示在顯示屏上,如圖2所示。 按鍵S1~S9為對應(yīng)輸入數(shù)字1~9,按鍵S10~S15(除s13)輸入對應(yīng)為16進(jìn)制中A~E,S13為退格鍵,S16為開始鍵。 4? ? 方案的實(shí)驗(yàn) 4.1? 計(jì)劃流程 本方案主要研究目標(biāo)是在STC89C51單片機(jī)平臺(tái)上借助RSA算法進(jìn)行硬件加密,具體如下: (1)將RSA算法進(jìn)行優(yōu)化編碼。 (2)將所需模塊驅(qū)動(dòng)進(jìn)行編碼,實(shí)現(xiàn)硬件的可視化操作。 (3)將簡化后的RSA算法函數(shù)應(yīng)用在單片機(jī)程序中,借助單片機(jī)矩陣鍵盤實(shí)現(xiàn)密鑰的輸入,以實(shí)現(xiàn)明文和密文間的相互轉(zhuǎn)化。 4.2? 編碼說明 4.2.1? 函數(shù)定義與說明 (1)uchar password ? ? ? //鍵盤輸入的未加密密碼 (2)uchar rsa_pw ? ? ? //加密成數(shù)組的密碼