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