王毅銘
(廣西大學國際學院,廣西 南寧 530004)
隨著網(wǎng)絡的發(fā)展,改變了人們?nèi)粘5墓ぷ魃睿W(wǎng)絡在給人們帶來方便的同時,也存在潛在的危險,需要人們注意信息安全。為了保證信息的安全,就可以通過加密的方式構(gòu)造出安全的密碼算法,把其應用在圖像、文字等方面,本文就是通過混沌理論來加密構(gòu)造單向HASH函數(shù)。
單向HASH函數(shù)是指單向散列函數(shù),就是把任意長的輸入消息串變化成固定長的輸出串且輸出串難以得到輸入串的一種函數(shù)。HASH函數(shù)可以更好地校驗和提高數(shù)字的有效性,算法是偽隨機函數(shù)[1]。
該函數(shù)在運行過程中不需要保密,因為單向性決定了它的安全性,在輸入數(shù)據(jù)后就可以求出HASH值。在反推的過程中需要依賴于輸入,這一算法能夠更好地降低概率,保證算法的安全性[2]。常見的單向散列函數(shù)有MD5,SHA,MAC,CRC,MD5使用的比較廣泛,可以把不同的數(shù)據(jù)塊通過編碼的方式變成128位的數(shù)值。SHA算法可以把任意長度的數(shù)據(jù)運算成160位的數(shù)值。MAC可以通過系統(tǒng)或用戶間的認證來完成加密。CRC可以更好地檢驗錯誤,便于人們對于數(shù)據(jù)進行校驗。
目前,很多加密都需要依賴于HASH函數(shù),人們在使用計算機時,就考慮到了建立計算機密碼系統(tǒng),MDS,SHA-1兩個HASH算法相對安全。隨著科學技術(shù)的不斷發(fā)展,人們開始發(fā)現(xiàn)混沌理論更加符合HASH函數(shù)的構(gòu)造要求,開始向混沌的單向HASH函數(shù)構(gòu)造方面進行研究,主要分為Logistic映射、分段線性混沌映射、貓映射、混沌神經(jīng)網(wǎng)絡、耦合映像格子。
和以往的密碼學相比,混沌密碼學發(fā)展時間較晚,在密碼技術(shù)方面存在一定的不足,主要體現(xiàn)在以下幾個方面:(1)缺少相關(guān)的安全性理論體系。對于混沌理論的研究還比較少,人們多是通過簡單理論對密碼進行安全分析。可以通過密鑰來進行相關(guān)信息的交流,運用傳統(tǒng)密碼學中的理論來驗證混沌密碼體制,研究出具有密碼特性的混沌映射。(2)有關(guān)動力學特性退化的問題。混沌系統(tǒng)下對空間的定義是整個實數(shù)域,計算機的精度有限,在設計密碼時容易出現(xiàn)這一問題,會影響到系統(tǒng)落不到運行軌道中,導致密碼出現(xiàn)死循環(huán)影響到算法[3]。在面對這一問題時,可以通過多個混沌系統(tǒng)聯(lián)合或運用更復雜的混沌系統(tǒng)來增加特性,對影響到系統(tǒng)參數(shù)的數(shù)值進行干擾,提高系統(tǒng)的準確度。(3)連續(xù)系統(tǒng)的離散化和算法復雜。密碼設計是通過數(shù)字化的方式完成的。隨著相關(guān)技術(shù)的不斷發(fā)展,人們只能通過系統(tǒng)進行簡單的數(shù)字運算,當面對大量數(shù)據(jù)時,密碼系統(tǒng)的計算難度就會進一步增大,會影響到它的廣泛應用。為了更好地解決這一問題,可以通過選擇穩(wěn)定性能好的映射、時空混沌系統(tǒng)、提高混沌性能、發(fā)揮傳統(tǒng)密碼技術(shù)的優(yōu)點來提高密碼的安全性。
雖然存在上述問題,但是它屬于一個新的密碼設計方法,可以豐富密碼學的內(nèi)容,讓人們可以攻克更多密碼體制相關(guān)的問題,能夠促進密碼學的研究。
時空混沌HASH編碼系統(tǒng)的硬件結(jié)構(gòu)是由外部接口來保證數(shù)據(jù)的輸入和輸出,在輸入接口是由HASH編碼硬件系統(tǒng)和主處理單元的通信接口組成。輸入消息數(shù)據(jù)時通過該硬件系統(tǒng),得出相應的HASH碼,通過傳回處理單元的方式對相關(guān)消息的安全進行驗證,等到認證結(jié)束后才能保證消息的可靠性,當收到消息被篡改,就說明這條消息不可靠。
這一系統(tǒng)包括數(shù)據(jù)標準化、包檢查、FFO數(shù)據(jù)緩存,時空混沌運算模塊和HASH編碼輸出模塊。數(shù)據(jù)標準化是為了保證數(shù)據(jù)有可以統(tǒng)一的規(guī)范,便于對模塊的數(shù)據(jù)處理。標準化可以把慢速的外部數(shù)據(jù)接口的數(shù)據(jù)都緩存都本單元內(nèi),能夠在接到數(shù)據(jù)后,通過該系統(tǒng)傳遞給檢查模塊,當出現(xiàn)數(shù)據(jù)不統(tǒng)一的情況,需要根據(jù)標準化的要求對其進行整齊劃一。在檢查模塊中,需要對相關(guān)的數(shù)據(jù)包進行檢查,保證消息的長度,對其進行標注。算法使用的耦合映像格子數(shù)量是固定的,所以需要對不足格子長度的數(shù)據(jù)包進行標注補充數(shù)據(jù),達到要求的數(shù)據(jù)長度,再把符合要求的數(shù)據(jù)發(fā)送到FFO數(shù)據(jù)緩存器中。數(shù)據(jù)緩存器是把數(shù)據(jù)接收后通過相關(guān)運算對數(shù)據(jù)進行處理,保證數(shù)據(jù)在運算的過程中不會出現(xiàn)丟失的情況,及時出現(xiàn)丟失也可以在數(shù)據(jù)緩存器中找到需要的數(shù)據(jù),這樣才能生存正確的HASH編碼。
只有完成上述的流程后,才能夠保證輸入信息的完整性,對于進行及時的檢查,發(fā)現(xiàn)問題及時解決問題,保證數(shù)據(jù)的規(guī)范性,便于后續(xù)模塊對數(shù)據(jù)進行運算。
這一模塊是HASH編碼硬件系統(tǒng)的核心單元,在輸入消息時要把其劃分為模塊進行運算。這一運算模塊是對輸入的數(shù)據(jù)進行相應的判斷,把輸入的數(shù)據(jù)作為該系統(tǒng)的初始值,通過數(shù)值來啟動系統(tǒng)多次的進行迭代運行產(chǎn)生偽隨機序列。通過多次的運算后,就可以形成消息模塊生成HASH碼的數(shù)據(jù)。對數(shù)據(jù)進行相應的操作,得出與之對應的HASH碼。對多個消息模塊的HASH碼再進行運算就可以得出相應消息的HASH編碼。
在對多個消息模塊進行運算時,可以通過并行運算的方法或串行運算的方法。前者的優(yōu)點在于可以更快地運算出結(jié)果,能夠同時處理多個模塊的數(shù)據(jù),在很短的時間內(nèi)就可以得到結(jié)果,缺點是對資源需求比較高,硬件成本相對比較高。后者的運算方式優(yōu)點是硬件資源需求比較少,通過一個模塊運算的方式就可以完成全部信息的運算,缺點就是在多個模塊數(shù)據(jù)在同時運算時,運算的速度會比較慢。為了更好地進行運算,就需要充分考慮到資源和速度的因素,找到一個比較平衡的點,根據(jù)不同的需求選擇不同的運算方式,滿足數(shù)據(jù)的運行正確生成HASH碼。
當出現(xiàn)多消息模塊并行運算時,可以在系統(tǒng)處于空閑時,把數(shù)據(jù)都準備好,把數(shù)據(jù)同時輸入到各個模塊中進行相關(guān)運算。在完成全部的計算后,就可以把生成的結(jié)果做最后一步的運算,得出所需要的HASH碼。當系統(tǒng)再次出現(xiàn)空閑的時候,就可以進行下一次的消息輸入,循環(huán)往復可以在一定程度上節(jié)約計算的時間。
在這一模塊運算單元中,是為了對消息模塊的數(shù)據(jù)進行運算,使其生產(chǎn)成本模塊的HASH碼。首先,在這一系統(tǒng)計算過程中,要保證存儲空間的需求。在n(循環(huán)次數(shù))和i(耦合格子數(shù))很大的情況下,就需要大的存儲空間對數(shù)據(jù)進行緩存。在一般的計算機上,由于存儲空間較大,可以完成上面的運算,對于數(shù)字邏輯系統(tǒng)來說,本身數(shù)據(jù)量就大,需要緩存的資源更多,在一定程度上增加了系統(tǒng)的硬件成本,所以減少中間數(shù)據(jù)可以滿足人們對于存儲空間的需求。
當時空混沌系統(tǒng)的N和I數(shù)值越大時,系統(tǒng)的非線性動力學特性就會變得復雜,這樣會更有利于生成HASH碼,通過這一方法可以更好地減少中間數(shù)據(jù)的存儲空間,讓整個數(shù)據(jù)量的運算都可以在硬件編程器中進行。
這一單元的運算流程如下:空閑狀態(tài)—讀取輸入數(shù)據(jù)到Line0—時空混沌運算得出Line1—移動到Line0—生成HASH碼。把要運算的數(shù)據(jù)輸入其中,通過轉(zhuǎn)移數(shù)據(jù)的方式在時空混沌系統(tǒng)中進行相關(guān)賦值的操作。在讀取數(shù)據(jù)完成后,可以運算到Line1,再通過相關(guān)的計算得出數(shù)據(jù)轉(zhuǎn)移到Line0中,進行下次的運算初始值,周而復始的進行新的一輪計算。直到完成N的運算后,就可以進入到生成HASH碼,在運算過程中可以通過十進制小數(shù)、二進制整數(shù)的方式來對應映射法,還可以通過抽取的方式對數(shù)據(jù)進行比對,組成HASH碼。
通過仿真技術(shù)可以對相關(guān)的模塊進行功能的測試,保證驗證的設計結(jié)果可以符合相關(guān)設計的目標。可以通過檢查模塊功能,分析輸入數(shù)據(jù)是否符合規(guī)范化操作,根據(jù)浮點數(shù)值得出時空混沌系統(tǒng)的初始值。當出現(xiàn)數(shù)據(jù)長度與輸入消息不對等時,可以通過填充的方式讓消息達到長度標準,進一步提高系統(tǒng)的動力學復雜性。
綜上所述,隨著網(wǎng)絡技術(shù)的不斷發(fā)展,為了保證信息的安全性,人們開始采用單向HASH函數(shù)下的密鑰機密方式,對數(shù)據(jù)進行校驗保證信息的完整性。