李 亮,閻 磊,白春?jiǎn)?/p>
(1.陜西西瑞(集團(tuán))有限責(zé)任公司,陜西 咸陽(yáng) 713199;2.河南工業(yè)大學(xué) 糧食儲(chǔ)藏安全河南省協(xié)同創(chuàng)新中心,鄭州 450052)
民以食為天,食以糧為先。作為世界上人口眾多的國(guó)家,中國(guó)歷來(lái)重視糧食安全問(wèn)題。新中國(guó)成立以后,我國(guó)即開(kāi)始著手建立國(guó)家糧食儲(chǔ)備[1]?,F(xiàn)階段我國(guó)糧食儲(chǔ)備分別由中央和地方糧食儲(chǔ)備倉(cāng)儲(chǔ)企業(yè)構(gòu)成,主要任務(wù)是保障國(guó)家糧食安全、應(yīng)對(duì)突發(fā)事件保障供應(yīng)、穩(wěn)定糧食市場(chǎng)價(jià)格。儲(chǔ)備糧的管理要求是數(shù)量真實(shí)、質(zhì)量良好和儲(chǔ)存安全[2]。信息技術(shù)是落實(shí)儲(chǔ)備糧管理要求的有效手段,2015年,國(guó)家發(fā)展改革委、國(guó)家糧食局、財(cái)政部發(fā)布實(shí)施的《糧食收儲(chǔ)供應(yīng)安全保障工程建設(shè)規(guī)劃(2015—2020年)》推動(dòng)了我國(guó)糧食儲(chǔ)藏智能化和信息化建設(shè)的快速發(fā)展[3]。在糧庫(kù)層面基本建立了以出入庫(kù)管理系統(tǒng)、安防監(jiān)控系統(tǒng)、業(yè)務(wù)管理系統(tǒng)、糧情測(cè)控系統(tǒng)及統(tǒng)一身份認(rèn)證系統(tǒng)等為主要支撐的糧食儲(chǔ)藏信息化架構(gòu)。在區(qū)域監(jiān)管層面基本建立了遠(yuǎn)程監(jiān)管系統(tǒng)、綜合業(yè)務(wù)系統(tǒng)、數(shù)據(jù)分析系統(tǒng)等為支撐的區(qū)域性信息化架構(gòu),有些還采用了糧食專網(wǎng)[4]、VPN(Virtual Private Network)虛擬專用網(wǎng)[5]等不同形式進(jìn)行了數(shù)據(jù)和業(yè)務(wù)的穿透式管理,建立了較為可靠的數(shù)據(jù)交換傳輸通道。為便于使用,一些糧食儲(chǔ)藏信息化應(yīng)用也建立了互聯(lián)網(wǎng)的應(yīng)用入口,可以通過(guò)Internet公共互聯(lián)網(wǎng)或移動(dòng)終端APP進(jìn)行外部訪問(wèn),外部訪問(wèn)在方便使用的同時(shí),也帶來(lái)了一定的安全風(fēng)險(xiǎn)。
作為關(guān)系國(guó)計(jì)民生的重要行業(yè),糧食儲(chǔ)藏相關(guān)數(shù)據(jù)的產(chǎn)生和使用可能涉及售糧農(nóng)戶、糧食倉(cāng)儲(chǔ)企業(yè)、糧食批發(fā)企業(yè)、糧食加工企業(yè)、農(nóng)發(fā)行等金融機(jī)構(gòu)、多層級(jí)糧食行政主管部門、多層級(jí)財(cái)政部門、多層級(jí)市場(chǎng)監(jiān)管部門和多層級(jí)發(fā)展改革委等。在進(jìn)行數(shù)據(jù)交換和傳輸過(guò)程中,糧食儲(chǔ)藏?cái)?shù)據(jù)可能在不同的網(wǎng)絡(luò)環(huán)境內(nèi)經(jīng)過(guò)多個(gè)不可靠節(jié)點(diǎn),特別是移動(dòng)端設(shè)備的引入,使得更多的數(shù)據(jù)通過(guò)公共Wi-Fi網(wǎng)絡(luò)進(jìn)行傳輸,更增加了數(shù)據(jù)被竊取和篡改的風(fēng)險(xiǎn)。在系統(tǒng)安全層面,軟硬件系統(tǒng)設(shè)計(jì)過(guò)程中,應(yīng)充分考慮數(shù)據(jù)面臨的風(fēng)險(xiǎn),保證其真實(shí)完整。數(shù)字指紋技術(shù),可以很好地嵌入信息使用者的痕跡信息[6],形成獨(dú)立不重復(fù)的指紋,能夠?qū)Z食儲(chǔ)藏?cái)?shù)據(jù)進(jìn)行可靠的信息流向追蹤,從而避免中間環(huán)節(jié)的數(shù)據(jù)篡改和非法復(fù)制。
隨著計(jì)算機(jī)系統(tǒng)在糧食儲(chǔ)藏領(lǐng)域的廣泛使用,糧食儲(chǔ)藏各個(gè)環(huán)節(jié)所產(chǎn)生的數(shù)據(jù)種類多樣,紛繁復(fù)雜。從計(jì)算機(jī)處理的角度來(lái)觀察,糧食儲(chǔ)藏?cái)?shù)據(jù)包括了結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化的不同數(shù)據(jù),數(shù)據(jù)現(xiàn)狀具有以下特點(diǎn)。
糧食儲(chǔ)藏?cái)?shù)據(jù)主要是在糧食倉(cāng)儲(chǔ)企業(yè)各項(xiàng)業(yè)務(wù)中產(chǎn)生,圍繞糧食計(jì)劃、采購(gòu)、存儲(chǔ)、保管、檢化驗(yàn)、殺蟲(chóng)熏蒸、出庫(kù)、輪換及銷售等不同環(huán)節(jié)均產(chǎn)生大量糧食儲(chǔ)藏?cái)?shù)據(jù)。這些數(shù)據(jù)中有諸如糧情檢測(cè)之類的實(shí)時(shí)數(shù)據(jù),有安防監(jiān)控和出入庫(kù)稱重監(jiān)控的音視頻數(shù)據(jù),有業(yè)務(wù)系統(tǒng)的計(jì)重計(jì)量數(shù)據(jù),有輪換計(jì)劃等文檔類型數(shù)據(jù)。不同數(shù)據(jù)存儲(chǔ)的形式不同,有數(shù)據(jù)庫(kù)存儲(chǔ)、文件存儲(chǔ)、字節(jié)片段存儲(chǔ)等,外部交換方式和數(shù)據(jù)量亦不同。糧食儲(chǔ)藏?cái)?shù)據(jù)的結(jié)構(gòu)形式眾多,包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化多種類型。
不同的用戶和系統(tǒng)之間,糧食儲(chǔ)藏?cái)?shù)據(jù)的數(shù)據(jù)交換頻繁且經(jīng)常發(fā)生。在糧食倉(cāng)儲(chǔ)實(shí)體內(nèi)部,各系統(tǒng)之間存在一對(duì)多、多對(duì)一、多對(duì)多的數(shù)據(jù)交換關(guān)系,數(shù)據(jù)交換主要發(fā)生在內(nèi)網(wǎng)環(huán)境中。在糧食倉(cāng)儲(chǔ)實(shí)體外部,存在著一對(duì)多、多對(duì)多的數(shù)據(jù)交換關(guān)系。數(shù)據(jù)交換往往跨越復(fù)雜的網(wǎng)絡(luò)環(huán)境,各個(gè)交換和共享節(jié)點(diǎn)所涉及的對(duì)象包括售糧農(nóng)戶、糧食流通批發(fā)企業(yè)、糧食加工企業(yè)、農(nóng)發(fā)行等涉糧金融機(jī)構(gòu)和糧食行政主管部門(包括各級(jí)糧食和物資儲(chǔ)備局、各級(jí)發(fā)改委等),以及農(nóng)業(yè)農(nóng)村廳局、市場(chǎng)監(jiān)管局等其他相關(guān)機(jī)構(gòu)。數(shù)據(jù)交換關(guān)系如圖1所示。
圖1 儲(chǔ)糧數(shù)據(jù)交換關(guān)系圖
我國(guó)“糧安工程”實(shí)施的倉(cāng)儲(chǔ)智能化升級(jí)改造,可以說(shuō)是糧食倉(cāng)儲(chǔ)行業(yè)首次大規(guī)模、全行業(yè)開(kāi)展的信息化智能化建設(shè)和應(yīng)用。在建設(shè)初期沒(méi)有形成統(tǒng)一的數(shù)據(jù)安全標(biāo)準(zhǔn),加之糧食倉(cāng)儲(chǔ)企業(yè)信息化隊(duì)伍偏弱,信息化素養(yǎng)不高。對(duì)應(yīng)用功能重視程度往往高于數(shù)據(jù)安全重視程度,不同的系統(tǒng)間安全等級(jí)參差不齊。對(duì)于糧食儲(chǔ)藏?cái)?shù)據(jù)可靠的信息流向追蹤,以及中間環(huán)節(jié)的數(shù)據(jù)篡改防護(hù)不足。在用戶端,涵蓋了PC計(jì)算機(jī)、平板電腦、手持移動(dòng)終端及觸控一體機(jī)等多種終端形式,操作系統(tǒng)包括Microsoft Windows、Linux、谷歌Android、Microsoft WinCE等多種平臺(tái)。
數(shù)字指紋可以看做是糧食儲(chǔ)藏?cái)?shù)據(jù)的一段摘要數(shù)據(jù)。給定一個(gè)單向指紋提取函數(shù)F,輸入糧食儲(chǔ)藏?cái)?shù)據(jù)X,可得到一個(gè)有限比特的指紋數(shù)據(jù)Y,即根據(jù)糧食儲(chǔ)藏?cái)?shù)據(jù)所提取的指紋,基于指紋提取函數(shù)的單向性,該計(jì)算具有不可逆性和唯一性。另一方面,指紋提取函數(shù)F還具有計(jì)算結(jié)果有限性,即對(duì)于給定任意長(zhǎng)度的數(shù)據(jù)X,輸出結(jié)果為固定長(zhǎng)度值Y?;诖耍疚牟捎肏ash散列函數(shù)作為指紋提取函數(shù),其對(duì)于任意長(zhǎng)度的輸入,可通過(guò)散列算法,變換為定長(zhǎng)的輸出結(jié)果[7],表示為h=h(M),其中M為任意長(zhǎng)度輸入值,h為計(jì)算得出的輸出散列值,即所求的數(shù)字指紋。目前主要采用的Hash函數(shù)有MD5[8]、SHA-1[9]等方法。
對(duì)于MD5方法,需要提取數(shù)字指紋的糧食儲(chǔ)藏?cái)?shù)據(jù)作為輸入,按照每512bit劃分為一個(gè)報(bào)文分組,如果最后一個(gè)分組不足512bit,則需要進(jìn)行數(shù)據(jù)填充。每一個(gè)報(bào)文分組由16個(gè)32bit的字構(gòu)成。經(jīng)過(guò)運(yùn)算后,最終得到一個(gè)128bit的散列值,該散列值即可作為數(shù)字指紋。對(duì)于SHA-1方法,其思想與MD5類似,即將提取數(shù)字指紋的糧食儲(chǔ)藏?cái)?shù)據(jù)作為輸入,同樣按照每512bit劃分為一個(gè)報(bào)文分組,最終得到的是一個(gè)160bit的散列值作為數(shù)字指紋。MD5和SHA-1兩種Hash函數(shù)都是單向不可逆的,即從某一給定散列值單純依靠推導(dǎo)計(jì)算逆向得出輸入數(shù)據(jù)是不可能的,由此保證了數(shù)字指紋的安全性。
MD5算法和SHA-1算法均被證明可能存在碰撞,即不同的輸入數(shù)據(jù)可能對(duì)應(yīng)相同的散列值[10-11]。但是需要指明的是,雖然2種算法都存在可能的碰撞,但是并非每一個(gè)輸入數(shù)據(jù)都能找到相關(guān)的碰撞數(shù)據(jù),發(fā)生碰撞的可能性較小,如通過(guò)計(jì)算來(lái)尋找碰撞則常規(guī)計(jì)算機(jī)系統(tǒng)的巨大計(jì)算量對(duì)于當(dāng)前的應(yīng)用而言基本上沒(méi)有意義[12],2種算法仍然可以通過(guò)加鹽等改進(jìn)作為糧食儲(chǔ)藏?cái)?shù)據(jù)的數(shù)字指紋提取方法。
所提取的數(shù)字指紋與原始儲(chǔ)藏?cái)?shù)據(jù)形成1對(duì)1的映射關(guān)系。即根據(jù)儲(chǔ)藏?cái)?shù)據(jù)可對(duì)應(yīng)出唯一的數(shù)字指紋。
糧食儲(chǔ)藏?cái)?shù)據(jù)在進(jìn)行過(guò)數(shù)字指紋提取后,應(yīng)將數(shù)字指紋嵌入到原數(shù)據(jù)中,進(jìn)行分發(fā)和共享。對(duì)于音視頻、圖像類數(shù)據(jù),其可通過(guò)類似數(shù)字水印的方法進(jìn)行嵌入,并不影響相關(guān)數(shù)據(jù)的使用。對(duì)于記錄類數(shù)據(jù),則需要定義數(shù)據(jù)嵌入和讀取協(xié)議,制定數(shù)字指紋的嵌入位置。簡(jiǎn)單方法是將數(shù)字指紋散列值嵌入在糧食儲(chǔ)藏記錄類數(shù)據(jù)尾部,構(gòu)成分發(fā)數(shù)據(jù),如圖2所示。
圖2 儲(chǔ)糧數(shù)據(jù)記錄類數(shù)據(jù)嵌入數(shù)字指紋圖
在某大型糧食倉(cāng)儲(chǔ)綜合集團(tuán)企業(yè)信息化建設(shè)中,應(yīng)用數(shù)字指紋進(jìn)行數(shù)據(jù)保證。該企業(yè)集團(tuán)業(yè)務(wù)涵蓋糧食加工、收購(gòu)、儲(chǔ)存、糧油貿(mào)易等,是省級(jí)農(nóng)業(yè)產(chǎn)業(yè)化重點(diǎn)龍頭企業(yè)、省級(jí)米面油產(chǎn)品應(yīng)急保障企業(yè)。企業(yè)的糧食儲(chǔ)藏儲(chǔ)存業(yè)務(wù)分布在多個(gè)不同地市,糧食總倉(cāng)容接近50萬(wàn)t。該企業(yè)集團(tuán)糧食儲(chǔ)藏?cái)?shù)據(jù)分發(fā)、共享、交換業(yè)務(wù)頻繁,且多種網(wǎng)絡(luò)環(huán)境交叉,對(duì)接外部單位眾多。
基于此應(yīng)用需要,設(shè)計(jì)糧食儲(chǔ)藏?cái)?shù)字指紋應(yīng)用方案。
(1)建立涉及所有數(shù)據(jù)需求方和供應(yīng)方的用戶數(shù)據(jù)庫(kù),用戶ID為不重復(fù)唯一索引。
(2)由糧食儲(chǔ)藏?cái)?shù)據(jù)需求方向數(shù)據(jù)提供方發(fā)起數(shù)據(jù)請(qǐng)求,該請(qǐng)求中應(yīng)包含數(shù)據(jù)需求方的用戶ID。
(3)數(shù)據(jù)供應(yīng)方根據(jù)請(qǐng)求內(nèi)容匯集糧食儲(chǔ)藏?cái)?shù)據(jù),拼接上需求方ID作為數(shù)字指紋生成的輸入數(shù)據(jù)。
(4)對(duì)輸入數(shù)據(jù)進(jìn)行數(shù)字指紋提取,并將數(shù)字指紋嵌入在匯集糧食儲(chǔ)藏?cái)?shù)據(jù)(不包括需求方ID數(shù)據(jù))尾部,形成回傳響應(yīng)數(shù)據(jù),發(fā)送給需求方。
(5)需求方接到回傳響應(yīng)數(shù)據(jù)后,分割出糧食儲(chǔ)藏?cái)?shù)據(jù)和數(shù)字指紋。并將糧食儲(chǔ)藏?cái)?shù)據(jù)拼接自身ID后進(jìn)行驗(yàn)證數(shù)字指紋提取,比對(duì)驗(yàn)證數(shù)字指紋和回傳響應(yīng)數(shù)字指紋。如無(wú)誤,確認(rèn)收到數(shù)據(jù)正常。
以該企業(yè)庫(kù)存糧油貨位卡為例,該貨位卡數(shù)據(jù)包括“貨位編號(hào)、糧油性質(zhì)、糧權(quán)歸屬、倉(cāng)型、設(shè)計(jì)容量(t)、入庫(kù)時(shí)間、成貨位時(shí)間、糧油品種、收獲年度、實(shí)際數(shù)量(t)、產(chǎn)地、儲(chǔ)存方式、包裝存糧、包數(shù)、散存糧油、體積(m3)、長(zhǎng)(m)、寬(m)、直徑(m)、高(m)、平均包重(kg)、等級(jí)、容重(g/L)、入倉(cāng)水分(%)、入倉(cāng)雜質(zhì)(%)、保管員、審核人”等。貨位卡數(shù)據(jù)在進(jìn)行糧食庫(kù)存檢查、數(shù)量統(tǒng)計(jì)、匯集統(tǒng)報(bào)等多個(gè)環(huán)節(jié)與外部系統(tǒng)間存在數(shù)據(jù)交換,以json格式對(duì)應(yīng)交換數(shù)據(jù)為:
某數(shù)據(jù)需求方用戶ID為“Ua01x_lyd_nbbc01”,拼接貨位卡數(shù)據(jù)后采用MD5方法進(jìn)行計(jì)算,生成的數(shù)字指紋為“6f455bfbf0d18574263ae81a2f7deca5”,數(shù)據(jù)傳輸時(shí)驗(yàn)證該數(shù)字指紋,確認(rèn)數(shù)據(jù)無(wú)誤。
采用上述方法,該大型糧食倉(cāng)儲(chǔ)企業(yè)構(gòu)建了覆蓋各糧食倉(cāng)儲(chǔ)節(jié)點(diǎn)的糧食儲(chǔ)藏指紋數(shù)據(jù)驗(yàn)證系統(tǒng)。在與上級(jí)糧食主管部門數(shù)據(jù)對(duì)接中,也采用數(shù)字指紋方法進(jìn)行數(shù)據(jù)共享和交換。運(yùn)行以來(lái),系統(tǒng)穩(wěn)定,數(shù)據(jù)安全得到保障。
基于TCP/IP的網(wǎng)絡(luò)基礎(chǔ)設(shè)施是當(dāng)今各項(xiàng)信息技術(shù)應(yīng)用的根本保障,傳統(tǒng)糧情檢測(cè)系統(tǒng)通過(guò)適網(wǎng)化改造,可快速融入TCP/IP網(wǎng)絡(luò),從而獲得更可靠、速度更快的數(shù)據(jù)通信。進(jìn)一步,能夠更好地接入糧庫(kù)智能化統(tǒng)一身份認(rèn)證和綜合門戶中,實(shí)現(xiàn)數(shù)據(jù)共享,消除信息孤島。