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