本發(fā)明涉及無線射頻識(shí)別技術(shù)領(lǐng)域,特別是涉及一種EPC卡的用戶數(shù)據(jù)寫入與讀取方法和系統(tǒng)。
背景技術(shù):
EPC卡(Electronic Product Code,電子產(chǎn)品碼)使用了射頻識(shí)別(RFID,Radio Frequency Identification)標(biāo)簽技術(shù),超高頻第二代空中接口標(biāo)準(zhǔn)(UHF Gen2)的EPC卡已經(jīng)在物聯(lián)網(wǎng)(Internet of Things)廣泛應(yīng)用。EPC卡的存儲(chǔ)空間劃分為保留區(qū)(Reserved)、電子產(chǎn)品碼區(qū)(EPC)、標(biāo)簽區(qū)(TID,Tag Identifier)和用戶區(qū)(User)四部分。其中,保留區(qū)(Reserved)用于存儲(chǔ)控制信息,包括銷毀密碼(Kill Password)和訪問密碼(Access Password);電子產(chǎn)品碼區(qū)(EPC)用于存儲(chǔ)控制信息和商業(yè)數(shù)據(jù),包括循環(huán)冗余校驗(yàn)碼(CRC,Cyclic Redundancy Check)、協(xié)議控制位(PC,Protocol Control)、擴(kuò)展協(xié)議控制位(XPC,eXtended Protocol Control)和EPC碼;標(biāo)簽區(qū)(TID)用于存儲(chǔ)標(biāo)簽制造信息;用戶區(qū)(User)用于存儲(chǔ)商業(yè)數(shù)據(jù)。
EPC碼用于標(biāo)識(shí)EPC卡對(duì)應(yīng)的產(chǎn)品,具有可變性?,F(xiàn)有的EPC編碼方案如表1所示,包括EPC-64、EPC-96、EPC-256,長(zhǎng)度分別為64位、96位、256位。EPC代碼由版本號(hào)、域名管理、對(duì)象分類和序列號(hào)四部分組成。EPC卡在實(shí)際應(yīng)用時(shí)不一定需要EPC碼,即使需要,所需的EPC碼長(zhǎng)度(例如,64位)也不一定需要占滿EPC卡的EPC碼存儲(chǔ)空間(例如,256位)。
表1 EPC編碼結(jié)構(gòu)
TID碼(Tag Identifier)用于標(biāo)識(shí)EPC卡本身,具有唯一性。有用戶區(qū)EPC卡可以在用戶區(qū)存儲(chǔ)用戶數(shù)據(jù),無用戶區(qū)EPC卡需要將用戶數(shù)據(jù)存儲(chǔ)在系統(tǒng)用戶數(shù)據(jù)查找表或數(shù)據(jù)庫(kù)中,對(duì)用戶數(shù)據(jù)進(jìn)行讀寫時(shí),需要在海量數(shù)據(jù)的用戶數(shù)據(jù)查找表中查找或在數(shù)據(jù)庫(kù)中檢索,讀寫效率較低。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)上述問題,提供一種EPC卡的用戶數(shù)據(jù)寫入與讀取方法和系統(tǒng)。
一種EPC卡的用戶數(shù)據(jù)寫入與讀取方法,包括以下步驟:
根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和待寫入的用戶數(shù)據(jù)生成明文;
對(duì)所述明文進(jìn)行加密生成密文,將所述密文寫入所述EPC卡的電子產(chǎn)品碼區(qū),并將所述電子產(chǎn)品碼區(qū)的讀寫保護(hù)狀態(tài)設(shè)置為帶密碼可寫或永久性不可寫;
在讀取所述EPC卡的用戶數(shù)據(jù)時(shí),對(duì)所述電子產(chǎn)品碼區(qū)的密文進(jìn)行解密,獲取解密數(shù)據(jù),根據(jù)從標(biāo)簽區(qū)讀取到的TID碼以及預(yù)存的項(xiàng)目標(biāo)識(shí)符對(duì)所述解密數(shù)據(jù)進(jìn)行校驗(yàn),在校驗(yàn)成功之后,從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù)。
一種EPC卡的用戶數(shù)據(jù)寫入與讀取系統(tǒng),包括:
明文生成模塊,用于根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和待寫入的用戶數(shù)據(jù)生成明文;
寫入模塊,用于對(duì)所述明文進(jìn)行加密生成密文,將所述密文寫入所述EPC卡的電子產(chǎn)品碼區(qū),并將所述電子產(chǎn)品碼區(qū)的讀寫保護(hù)狀態(tài)設(shè)置為帶密碼可寫或永久性不可寫;
讀出模塊,用于在讀取所述EPC卡的用戶數(shù)據(jù)時(shí),對(duì)所述電子產(chǎn)品碼區(qū)的密文進(jìn)行解密,獲取解密數(shù)據(jù),根據(jù)從標(biāo)簽區(qū)讀取到的TID碼以及預(yù)存的項(xiàng)目標(biāo)識(shí)符對(duì)所述解密數(shù)據(jù)進(jìn)行校驗(yàn),在校驗(yàn)成功之后,從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù)。
上述EPC卡的用戶數(shù)據(jù)寫入與讀取方法和系統(tǒng),將用戶數(shù)據(jù)存儲(chǔ)在電子產(chǎn)品碼區(qū)中,用戶數(shù)據(jù)從EPC卡讀取,無需查找用戶數(shù)據(jù)查找表或檢索數(shù)據(jù)庫(kù),加快了處理速度。在存儲(chǔ)前對(duì)用戶數(shù)據(jù)進(jìn)行了加密處理,并將電子產(chǎn)品碼區(qū)的讀寫保護(hù)狀態(tài)設(shè)置為帶密碼可寫或永久性不可寫,在讀出數(shù)據(jù)時(shí),需要先對(duì)用戶數(shù)據(jù)進(jìn)行解密和校驗(yàn),只有在校驗(yàn)成功后,才從所述EPC碼存儲(chǔ)空間中讀取所述用戶數(shù)據(jù)保證了用戶數(shù)據(jù)在EPC區(qū)的安全性。
附圖說明
圖1為一個(gè)實(shí)施例的用戶數(shù)據(jù)寫入與讀取方法流程圖;
圖2為一個(gè)實(shí)施例的用戶數(shù)據(jù)寫入與讀取系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
圖1為一個(gè)實(shí)施例的用戶數(shù)據(jù)寫入與讀取方法流程圖。如圖1所示,所述用戶數(shù)據(jù)寫入與讀取方法可包括以下步驟:
S1,根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和待寫入的用戶數(shù)據(jù)生成明文;
在本步驟中,寫入用戶數(shù)據(jù)之前,可以首先根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和所述用戶數(shù)據(jù)生成明文,從而為后續(xù)操作做準(zhǔn)備。所述明文是未經(jīng)加密的信息,人類可以讀懂的信息。
生成明文的方式可以是將所述EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和用戶數(shù)據(jù)拼接生成。例如,假設(shè)TID碼為AAA,項(xiàng)目標(biāo)識(shí)符為BBB,用戶數(shù)據(jù)為CCC,則明文可以是AAABBBCCC。也可以根據(jù)其他方式生成明文。
S2,對(duì)所述明文進(jìn)行加密生成密文,將所述密文寫入所述EPC卡的電子產(chǎn)品碼區(qū),并將所述電子產(chǎn)品碼區(qū)的讀寫保護(hù)狀態(tài)設(shè)置為帶密碼可寫或永久性不可寫;
其中,所述密文是將所述明文打亂后的消息。如表1所示,EPC卡在實(shí)際應(yīng)用時(shí)不一定需要EPC碼,即使需要,所需的EPC碼長(zhǎng)度(例如,64位)也不一定需要占滿EPC卡的EPC碼存儲(chǔ)空間(例如,256位)。因此,對(duì)于無用戶區(qū)EPC卡,可將用戶數(shù)據(jù)存儲(chǔ)在電子產(chǎn)品碼區(qū)。為了防止用戶數(shù)據(jù)被竊聽,在本步驟中,可以對(duì)所述明文進(jìn)行加密生成密文。
在加密時(shí),可以獲取具有隨機(jī)性、不可預(yù)測(cè)性以及不可重現(xiàn)性的隨機(jī)事件對(duì)應(yīng)的數(shù)值信息;根據(jù)所述隨機(jī)事件對(duì)應(yīng)的數(shù)值信息,并根據(jù)所述項(xiàng)目標(biāo)識(shí)符和/或所述EPC卡的TID碼生成第一密鑰;根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文。其中,所述隨機(jī)事件包括半導(dǎo)體噪聲、不相干的振蕩器、系統(tǒng)時(shí)間、按鍵的時(shí)間間隔、鼠標(biāo)移動(dòng)和/或硬盤的磁頭位置等。進(jìn)一步地,為了提高密鑰機(jī)密性,可根據(jù)所述數(shù)值信息中隨機(jī)性較佳,更好的不可預(yù)測(cè)性也較佳的一者生成第一密鑰。為了進(jìn)一步提高密鑰的機(jī)密性,還可以根據(jù)所述數(shù)值信息中更好的不可重現(xiàn)性也較佳的一者生成第一密鑰。其中,所述隨機(jī)性簡(jiǎn)單來說就是看上去雜亂無章的性質(zhì);所述不可預(yù)測(cè)性是指攻擊者在知道過去生成的偽隨機(jī)數(shù)列的前提下,依然無法預(yù)測(cè)出下一個(gè)生成出來的偽隨機(jī)數(shù)的性質(zhì);所述不可重現(xiàn)性是指無法重現(xiàn)和某一隨機(jī)數(shù)列完全相同的數(shù)列的性質(zhì)。也可以根據(jù)所述項(xiàng)目標(biāo)識(shí)符和/或所述EPC卡的TID碼生成第一密鑰,根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文。每張EPC卡的TID碼均不相同,如果密鑰生成因子包含TID碼,則每張EPC卡對(duì)應(yīng)的密鑰均不相同。還可以根據(jù)所述數(shù)值信息中隨機(jī)性最大,不可預(yù)測(cè)性最佳且不可重現(xiàn)性最佳的一者和所述EPC卡的TID碼生成第一密鑰。通過這種方式生成的密鑰安全性較高,其數(shù)值和變化規(guī)律不容易被竊聽者獲取到。TID碼是公開的,有的隨機(jī)數(shù)的數(shù)值空間有限。多個(gè)隨機(jī)數(shù)值組合,再組合該項(xiàng)目對(duì)應(yīng)的項(xiàng)目標(biāo)識(shí)符(保密的),密鑰生成算法會(huì)更復(fù)雜,密鑰空間更大,機(jī)密性更好,更難破解。相比于只用TID碼生成密鑰的方式,本發(fā)明避免了一旦密鑰生成算法公開,就可以破解所有卡的密鑰的情況。
以根據(jù)系統(tǒng)時(shí)間生成第一密鑰為例。假設(shè)當(dāng)前時(shí)間為2016年01月02日03:04:05.678,在上述時(shí)間中,年份的變化頻率為每年變化一次,月份的變化頻率為每個(gè)月變化一次,日的變化頻率為每日變化一次(分布規(guī)律與操作者工作日相關(guān));時(shí)數(shù)的變化頻率為每小時(shí)一次,其數(shù)值存在24種可能性(分布規(guī)律與操作者工作時(shí)間相關(guān),上下午數(shù)值可能性較大,分布不均勻);分?jǐn)?shù)的變化頻率為每分一次,其數(shù)值存在60種可能性(分布均勻程度應(yīng)介于時(shí)數(shù)與秒數(shù)之間);秒數(shù)的變化頻率為每秒一次,其數(shù)值存在60種可能性且分布較均勻;毫秒數(shù)的變化頻率為每毫秒一次,其數(shù)值存在1000種可能性且分布很均勻。由此,可以根據(jù)月日時(shí)分秒和毫秒數(shù)值(此處為01、02、03、04、05、678)生成所述第一密鑰。密鑰生成算法可包括單向散列函數(shù),散列運(yùn)算具有模糊和擴(kuò)散密鑰,均勻分布密鑰的作用??梢酝ㄟ^單向散列函數(shù)的單向性和密碼的機(jī)密性來保證不可預(yù)測(cè)性??梢酝ㄟ^從不可重現(xiàn)的物理現(xiàn)象(即上述半導(dǎo)體噪聲、不相干的振蕩器等隨機(jī)事件)中獲取信息來保證不可重現(xiàn)性。
在一個(gè)具體的實(shí)施例中,可以根據(jù)系統(tǒng)啟動(dòng)至今的毫秒數(shù)、上位機(jī)軟件按鍵輸入用戶名的時(shí)間間隔毫秒數(shù)和鼠標(biāo)移動(dòng)選擇單選框或復(fù)選框或菜單的時(shí)間間隔毫秒數(shù)生成一個(gè)隨機(jī)數(shù),再將該隨機(jī)數(shù)與系統(tǒng)時(shí)間秒數(shù)、(硬盤磁道號(hào)+1)*(扇區(qū)號(hào)+1)等多個(gè)隨機(jī)變量進(jìn)行組合運(yùn)算,對(duì)組合運(yùn)算的結(jié)果進(jìn)行散列處理。
另外,為了進(jìn)一步提高用戶數(shù)據(jù)的安全性,在根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文之前,可以對(duì)用戶數(shù)據(jù)進(jìn)行前置加密;在根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文之后,可以對(duì)用戶數(shù)據(jù)進(jìn)行后置加密。具體地,可以根據(jù)前置加密使用的第二密鑰對(duì)所述明文進(jìn)行加密,生成第一加密數(shù)據(jù);根據(jù)所述第一密鑰對(duì)所述第一加密數(shù)據(jù)進(jìn)行加密,生成第二加密數(shù)據(jù);根據(jù)后置加密使用的第三密鑰對(duì)所述第二加密數(shù)據(jù)進(jìn)行加密,生成密文;其中,所述第二密鑰和第三密鑰均與所述第一密鑰不同。前置加密和后置加密可以使用現(xiàn)有加密技術(shù),例如異或加密;或者同類算法不同密鑰,所述第二密鑰可以采用與第一密鑰類似的方式生成,所述第三密鑰也可以采用與第一、二密鑰類似的方式生成。
例如,首先用對(duì)稱加密算法的加密函數(shù)和密鑰1加密(前置加密),接著用所述對(duì)稱加密算法的解密函數(shù)和密鑰2解密(主加密),最后用所述對(duì)稱加密算法的加密函數(shù)和密鑰3加密(后置加密)。密鑰1和密鑰2應(yīng)當(dāng)為不同的密鑰,密鑰2和密鑰3應(yīng)當(dāng)為不同的密鑰。
進(jìn)一步地,在加密前,還可以采用第一生成算法生成所述明文對(duì)應(yīng)的第一消息驗(yàn)證碼;相應(yīng)地,在解密后,可根據(jù)所述第一生成算法對(duì)所述明文生成第二消息驗(yàn)證碼,并將所述第二消息驗(yàn)證碼與解密數(shù)據(jù)中的第一消息驗(yàn)證碼進(jìn)行對(duì)比,如果所述第二消息驗(yàn)證碼與所述第一消息驗(yàn)證碼相同,且所述TID碼與項(xiàng)目標(biāo)識(shí)符均校驗(yàn)成功,則判定解密數(shù)據(jù)合法有效,否則,判定解密數(shù)據(jù)非法無效。
進(jìn)一步地,還可以采用第二生成算法生成所述密文對(duì)應(yīng)的第三消息驗(yàn)證碼,將所述密文和第三消息驗(yàn)證碼組合后寫入EPC卡的電子產(chǎn)品碼區(qū)。相應(yīng)地,在解密時(shí)根據(jù)所述第二生成算法對(duì)所述密文生成第四消息驗(yàn)證碼;將所述第四消息驗(yàn)證碼與寫入電子產(chǎn)品碼區(qū)的第三消息驗(yàn)證碼進(jìn)行對(duì)比;如果所述第四消息驗(yàn)證碼與所述第三消息驗(yàn)證碼相同,且所述TID碼與項(xiàng)目標(biāo)識(shí)符均校驗(yàn)成功,則判定加密數(shù)據(jù)合法有效,否則,判定加密數(shù)據(jù)非法無效。
為了進(jìn)一步提高安全性,防止被破解,所述各個(gè)密鑰生成算法可以設(shè)置為互不相關(guān)(無相關(guān)性),各個(gè)加密算法可以設(shè)置為互不相關(guān)(無相關(guān)性),各個(gè)生成算法可以設(shè)置為互不相關(guān)(無相關(guān)性)。
S3,在讀取所述EPC卡的用戶數(shù)據(jù)時(shí),對(duì)所述電子產(chǎn)品碼區(qū)的密文進(jìn)行解密,獲取解密數(shù)據(jù),根據(jù)從標(biāo)簽區(qū)讀取到的TID碼以及預(yù)存的項(xiàng)目標(biāo)識(shí)符對(duì)所述解密數(shù)據(jù)進(jìn)行校驗(yàn),在校驗(yàn)成功之后,從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù)。
若校驗(yàn)成功,可以從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù),并可以執(zhí)行有效卡處理指令(例如,門禁、電梯系統(tǒng)執(zhí)行放行并記錄的指令)。若校驗(yàn)失敗,則可以執(zhí)行無效卡處理操作(例如,拒絕所述無效卡的請(qǐng)求、記錄讀卡時(shí)間、所述無效卡的EPC碼和TID碼,以及發(fā)出報(bào)警指令)。例如,2016年1月2日03:04:05時(shí),有一張無效卡試圖解鎖,則可以記錄讀卡時(shí)間,該無效卡的EPC碼和TID碼等內(nèi)容,并可以發(fā)出報(bào)警指令,門禁系統(tǒng)可以根據(jù)該報(bào)警指令發(fā)出警報(bào)。
下面以具體的實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
例1,EPC-64方案II型卡,EPC碼存儲(chǔ)空間共64位,可用散列函數(shù)MurmurHash()生成TID碼的32位散列值,追加32位的用戶權(quán)限信息拼接為64位二進(jìn)制數(shù)作為明文,可用塊加密算法DES加密后生成64位密文,寫入到EPC碼存儲(chǔ)空間。
例2,EPC-96方案I型卡,EPC碼存儲(chǔ)空間共96位,可使用EPC-64II型編碼方案的EPC碼,可用異或運(yùn)算(XOR)生成TID碼的16位散列值,追加16位的用戶權(quán)限信息拼接為32位二進(jìn)制數(shù)作為明文,可用流加密算法RC4加密后生成32位密文,寫入到EPC碼存儲(chǔ)空間。
例3,EPC-256方案I型卡,EPC碼的域名管理字段可設(shè)置為本系統(tǒng)廠商,對(duì)象分類字段可設(shè)置為自定義編碼方案類型,序列號(hào)字段長(zhǎng)度160位,可將其高32位用于存儲(chǔ)序列號(hào),低128位用于存儲(chǔ)加密信息,TID碼與項(xiàng)目標(biāo)識(shí)符異或運(yùn)算后用散列函數(shù)MurmurHash()生成32位散列值,追加96位的用戶數(shù)據(jù)與項(xiàng)目標(biāo)識(shí)符散列值進(jìn)行異或運(yùn)算的結(jié)果,拼接為128位二進(jìn)制數(shù)作為明文,用塊加密算法AES-128加密后生成128位密文,寫入到EPC碼存儲(chǔ)空間。優(yōu)點(diǎn):進(jìn)入其它EPC卡系統(tǒng)讀卡范圍不會(huì)誤識(shí)別廠商和對(duì)象分類,TID碼和32位序列號(hào)足夠區(qū)分本系統(tǒng)的每一張卡。
本發(fā)明具有以下優(yōu)點(diǎn):
(1)無用戶區(qū)EPC卡利用EPC碼存儲(chǔ)空間寫入用戶數(shù)據(jù),提高了利用率;
(2)管理和應(yīng)用操作均與現(xiàn)有技術(shù)產(chǎn)品相同,管理員技能要求低;
(3)系統(tǒng)無需用戶數(shù)據(jù)查找表或數(shù)據(jù)庫(kù),建設(shè)成本低;
(4)用戶數(shù)據(jù)從EPC卡讀取,無需查找用戶數(shù)據(jù)查找表或檢索數(shù)據(jù)庫(kù),加快了處理速度;
(5)TID碼、項(xiàng)目標(biāo)識(shí)符、邏輯運(yùn)算、散列、加密和校驗(yàn)等技術(shù)手段的有機(jī)結(jié)合,以及設(shè)置EPC區(qū)讀寫保護(hù)狀態(tài)為帶密碼可寫或永久性不可寫,不能通過讀寫數(shù)據(jù)的方式對(duì)用戶數(shù)據(jù)和系統(tǒng)進(jìn)行非法進(jìn)入、使用、泄密、破壞、修改、檢視、銷毀、制造偽卡,保證了信息安全性(機(jī)密性、完整性、可用性)和可靠性;加密防止竊聽,保證了機(jī)密性;單向散列函數(shù)防止篡改,保證了完整性;消息認(rèn)證碼防止篡改和偽裝,保證了完整性和認(rèn)證。
(6)現(xiàn)有的產(chǎn)品和系統(tǒng)可通過修改軟件來實(shí)現(xiàn)本方法,改造成本低,有利于推廣。
如圖2所示,本發(fā)明還提供一種用戶數(shù)據(jù)寫入與讀取系統(tǒng)。所述用戶數(shù)據(jù)寫入與讀取系統(tǒng)可包括:
明文生成模塊10,用于根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和待寫入的用戶數(shù)據(jù)生成明文;
在寫入用戶數(shù)據(jù)之前,可以首先根據(jù)EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和所述用戶數(shù)據(jù)生成明文,從而為后續(xù)操作做準(zhǔn)備。所述明文是未經(jīng)加密的信息,人類可以讀懂的信息。
生成明文的方式可以是將所述EPC卡的TID碼、項(xiàng)目標(biāo)識(shí)符和用戶數(shù)據(jù)拼接生成。例如,假設(shè)TID碼為AAA,項(xiàng)目標(biāo)識(shí)符為BBB,用戶數(shù)據(jù)為CCC,則明文可以是AAABBBCCC。也可以根據(jù)其他方式生成明文。
寫入模塊20,用于對(duì)所述明文進(jìn)行加密生成密文,將所述密文寫入所述EPC卡的電子產(chǎn)品碼區(qū),并將所述電子產(chǎn)品碼區(qū)的讀寫保護(hù)狀態(tài)設(shè)置為帶密碼可寫或永久性不可寫;
其中,所述密文是將所述明文打亂后的消息。如表1所示,EPC卡在實(shí)際應(yīng)用時(shí)不一定需要EPC碼,即使需要,所需的EPC碼長(zhǎng)度(例如,64位)也不一定需要占滿EPC卡的EPC碼存儲(chǔ)空間(例如,256位)。因此,對(duì)于無用戶區(qū)EPC卡,可將用戶數(shù)據(jù)存儲(chǔ)在電子產(chǎn)品碼區(qū)。為了防止用戶數(shù)據(jù)被竊聽,可以對(duì)所述明文進(jìn)行加密生成密文。
在加密時(shí),可以獲取具有隨機(jī)性、不可預(yù)測(cè)性以及不可重現(xiàn)性的隨機(jī)事件對(duì)應(yīng)的數(shù)值信息;根據(jù)所述隨機(jī)事件對(duì)應(yīng)的數(shù)值信息,并根據(jù)所述項(xiàng)目標(biāo)識(shí)符和/或所述EPC卡的TID碼生成第一密鑰;根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文。其中,所述隨機(jī)事件包括半導(dǎo)體噪聲、不相干的振蕩器、系統(tǒng)時(shí)間、按鍵的時(shí)間間隔、鼠標(biāo)移動(dòng)和/或硬盤的磁頭位置等。進(jìn)一步地,為了提高密鑰機(jī)密性,可根據(jù)所述數(shù)值信息中隨機(jī)性較佳,更好的不可預(yù)測(cè)性也較佳的一者生成第一密鑰。為了進(jìn)一步提高密鑰的機(jī)密性,還可以根據(jù)所述數(shù)值信息中更好的不可重現(xiàn)性也較佳的一者生成第一密鑰。其中,所述隨機(jī)性簡(jiǎn)單來說就是看上去雜亂無章的性質(zhì);所述不可預(yù)測(cè)性是指攻擊者在知道過去生成的偽隨機(jī)數(shù)列的前提下,依然無法預(yù)測(cè)出下一個(gè)生成出來的偽隨機(jī)數(shù)的性質(zhì);所述不可重現(xiàn)性是指無法重現(xiàn)和某一隨機(jī)數(shù)列完全相同的數(shù)列的性質(zhì)。也可以根據(jù)所述項(xiàng)目標(biāo)識(shí)符和/或所述EPC卡的TID碼生成第一密鑰,根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文。每張EPC卡的TID碼均不相同,如果密鑰生成因子包含TID碼,則每張EPC卡對(duì)應(yīng)的密鑰均不相同。還可以根據(jù)所述數(shù)值信息中隨機(jī)性最大,不可預(yù)測(cè)性最佳且不可重現(xiàn)性最佳的一者和所述EPC卡的TID碼生成第一密鑰。通過這種方式生成的密鑰安全性較高,其數(shù)值和變化規(guī)律不容易被竊聽者獲取到。TID碼是公開的,有的隨機(jī)數(shù)的數(shù)值空間有限。多個(gè)隨機(jī)數(shù)值組合,再組合該項(xiàng)目對(duì)應(yīng)的項(xiàng)目標(biāo)識(shí)符(保密的),密鑰生成算法會(huì)更復(fù)雜,密鑰空間更大,機(jī)密性更好,更難破解。相比于只用TID碼生成密鑰的方式,本發(fā)明避免了一旦密鑰生成算法公開,就可以破解所有卡的密鑰的情況。
以根據(jù)系統(tǒng)時(shí)間生成第一密鑰為例。假設(shè)當(dāng)前時(shí)間為2016年01月02日03:04:05.678,在上述時(shí)間中,年份的變化頻率為每年變化一次,月份的變化頻率為每個(gè)月變化一次,日的變化頻率為每日變化一次(分布規(guī)律與操作者工作日相關(guān));時(shí)數(shù)的變化頻率為每小時(shí)一次,其數(shù)值存在24種可能性(分布規(guī)律與操作者工作時(shí)間相關(guān),上下午數(shù)值可能性較大,分布不均勻);分?jǐn)?shù)的變化頻率為每分一次,其數(shù)值存在60種可能性(分布均勻程度應(yīng)介于時(shí)數(shù)與秒數(shù)之間);秒數(shù)的變化頻率為每秒一次,其數(shù)值存在60種可能性且分布較均勻;毫秒數(shù)的變化頻率為每毫秒一次,其數(shù)值存在1000種可能性且分布很均勻。由此,可以根據(jù)月日時(shí)分秒和毫秒數(shù)值(此處為01、02、03、04、05、678)生成所述第一密鑰。密鑰生成算法可包括單向散列函數(shù),散列運(yùn)算具有模糊和擴(kuò)散密鑰,均勻分布密鑰的作用??梢酝ㄟ^單向散列函數(shù)的單向性和密碼的機(jī)密性來保證不可預(yù)測(cè)性??梢酝ㄟ^從不可重現(xiàn)的物理現(xiàn)象(即上述半導(dǎo)體噪聲、不相干的振蕩器等隨機(jī)事件)中獲取信息來保證不可重現(xiàn)性。
在一個(gè)具體的實(shí)施例中,可以根據(jù)系統(tǒng)啟動(dòng)至今的毫秒數(shù)、上位機(jī)軟件按鍵輸入用戶名的時(shí)間間隔毫秒數(shù)和鼠標(biāo)移動(dòng)選擇單選框或復(fù)選框或菜單的時(shí)間間隔毫秒數(shù)生成一個(gè)隨機(jī)數(shù),再將該隨機(jī)數(shù)與系統(tǒng)時(shí)間秒數(shù)、(硬盤磁道號(hào)+1)*(扇區(qū)號(hào)+1)等多個(gè)隨機(jī)變量進(jìn)行組合運(yùn)算,對(duì)組合運(yùn)算的結(jié)果進(jìn)行散列處理。
另外,為了進(jìn)一步提高用戶數(shù)據(jù)的安全性,在根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文之前,可以對(duì)用戶數(shù)據(jù)進(jìn)行前置加密;在根據(jù)所述第一密鑰對(duì)所述明文進(jìn)行加密生成密文之后,可以對(duì)用戶數(shù)據(jù)進(jìn)行后置加密。具體地,可以根據(jù)前置加密使用的第二密鑰對(duì)所述明文進(jìn)行加密,生成第一加密數(shù)據(jù);根據(jù)所述第一密鑰對(duì)所述第一加密數(shù)據(jù)進(jìn)行加密,生成第二加密數(shù)據(jù);根據(jù)后置加密使用的第三密鑰對(duì)所述第二加密數(shù)據(jù)進(jìn)行加密,生成密文;其中,所述第二密鑰和第三密鑰均與所述第一密鑰不同。前置加密和后置加密可以使用現(xiàn)有加密技術(shù),例如異或加密;或者同類算法不同密鑰,所述第二密鑰可以采用與第一密鑰類似的方式生成,所述第三密鑰也可以采用與第一、二密鑰類似的方式生成。
例如,首先用對(duì)稱加密算法的加密函數(shù)和密鑰1加密(前置加密),接著用所述對(duì)稱加密算法的解密函數(shù)和密鑰2解密(主加密),最后用所述對(duì)稱加密算法的加密函數(shù)和密鑰3加密(后置加密)。密鑰1和密鑰2應(yīng)當(dāng)為不同的密鑰,密鑰2和密鑰3應(yīng)當(dāng)為不同的密鑰。
進(jìn)一步地,在加密前,還可以采用第一生成算法生成所述明文對(duì)應(yīng)的第一消息驗(yàn)證碼;相應(yīng)地,在解密后,可根據(jù)所述第一生成算法對(duì)所述明文生成第二消息驗(yàn)證碼,并將所述第二消息驗(yàn)證碼與解密數(shù)據(jù)中的第一消息驗(yàn)證碼進(jìn)行對(duì)比,如果所述第二消息驗(yàn)證碼與所述第一消息驗(yàn)證碼相同,且所述TID碼與項(xiàng)目標(biāo)識(shí)符均校驗(yàn)成功,則判定解密數(shù)據(jù)合法有效,否則,判定解密數(shù)據(jù)非法無效。
進(jìn)一步地,還可以采用第二生成算法生成所述密文對(duì)應(yīng)的第三消息驗(yàn)證碼,將所述密文和第三消息驗(yàn)證碼組合后寫入EPC卡的電子產(chǎn)品碼區(qū)。相應(yīng)地,在解密時(shí)根據(jù)所述第二生成算法對(duì)所述密文生成第四消息驗(yàn)證碼;將所述第四消息驗(yàn)證碼與寫入電子產(chǎn)品碼區(qū)的第三消息驗(yàn)證碼進(jìn)行對(duì)比;如果所述第四消息驗(yàn)證碼與所述第三消息驗(yàn)證碼相同,且所述TID碼與項(xiàng)目標(biāo)識(shí)符均校驗(yàn)成功,則判定加密數(shù)據(jù)合法有效,否則,判定加密數(shù)據(jù)非法無效。
為了進(jìn)一步提高安全性,防止被破解,所述各個(gè)密鑰生成算法可以設(shè)置為互不相關(guān)(無相關(guān)性),各個(gè)加密算法可以設(shè)置為互不相關(guān)(無相關(guān)性),各個(gè)生成算法可以設(shè)置為互不相關(guān)(無相關(guān)性)。
讀出模塊30,用于在讀取所述EPC卡的用戶數(shù)據(jù)時(shí),對(duì)所述電子產(chǎn)品碼區(qū)的密文進(jìn)行解密,獲取解密數(shù)據(jù),根據(jù)從標(biāo)簽區(qū)讀取到的TID碼以及預(yù)存的項(xiàng)目標(biāo)識(shí)符對(duì)所述解密數(shù)據(jù)進(jìn)行校驗(yàn),在校驗(yàn)成功之后,從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù)。
若校驗(yàn)成功,可以從所述解密數(shù)據(jù)中讀取所述用戶數(shù)據(jù),并可以執(zhí)行有效卡處理指令(例如,門禁、電梯系統(tǒng)執(zhí)行放行并記錄的指令)。若校驗(yàn)失敗,則可以執(zhí)行無效卡處理操作(例如,拒絕所述無效卡的請(qǐng)求、記錄讀卡時(shí)間、所述無效卡的EPC碼和TID碼,以及發(fā)出報(bào)警指令)。例如,2016年1月2日03:04:05時(shí),有一張無效卡試圖解鎖,則可以記錄讀卡時(shí)間,該無效卡的EPC碼和TID碼等內(nèi)容,并可以發(fā)出報(bào)警指令,門禁系統(tǒng)可以根據(jù)該報(bào)警指令發(fā)出警報(bào)。
下面以具體的實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
例1,EPC-64方案II型卡,EPC碼存儲(chǔ)空間共64位,可用散列函數(shù)MurmurHash()生成TID碼的32位散列值,追加32位的用戶權(quán)限信息拼接為64位二進(jìn)制數(shù)作為明文,可用塊加密算法DES加密后生成64位密文,寫入到EPC碼存儲(chǔ)空間。
例2,EPC-96方案I型卡,EPC碼存儲(chǔ)空間共96位,可使用EPC-64II型編碼方案的EPC碼,可用異或運(yùn)算(XOR)生成TID碼的16位散列值,追加16位的用戶權(quán)限信息拼接為32位二進(jìn)制數(shù)作為明文,可用流加密算法RC4加密后生成32位密文,寫入到EPC碼存儲(chǔ)空間。
例3,EPC-256方案I型卡,EPC碼的域名管理字段可設(shè)置為本系統(tǒng)廠商,對(duì)象分類字段可設(shè)置為自定義編碼方案類型,序列號(hào)字段長(zhǎng)度160位,可將其高32位用于存儲(chǔ)序列號(hào),低128位用于存儲(chǔ)加密信息,TID碼與項(xiàng)目標(biāo)識(shí)符異或運(yùn)算后用散列函數(shù)MurmurHash()生成32位散列值,追加96位的用戶數(shù)據(jù)與項(xiàng)目標(biāo)識(shí)符散列值進(jìn)行異或運(yùn)算的結(jié)果,拼接為128位二進(jìn)制數(shù)作為明文,用塊加密算法AES-128加密后生成128位密文,寫入到EPC碼存儲(chǔ)空間。優(yōu)點(diǎn):進(jìn)入其它EPC卡系統(tǒng)讀卡范圍不會(huì)誤識(shí)別廠商和對(duì)象分類,TID碼和32位序列號(hào)足夠區(qū)分本系統(tǒng)的每一張卡。
本發(fā)明具有以下優(yōu)點(diǎn):
(1)無用戶區(qū)EPC卡利用EPC碼存儲(chǔ)空間寫入用戶數(shù)據(jù),提高了利用率;
(2)管理和應(yīng)用操作均與現(xiàn)有技術(shù)產(chǎn)品相同,管理員技能要求低;
(3)系統(tǒng)無需用戶數(shù)據(jù)查找表或數(shù)據(jù)庫(kù),建設(shè)成本低;
(4)用戶數(shù)據(jù)從EPC卡讀取,無需查找用戶數(shù)據(jù)查找表或檢索數(shù)據(jù)庫(kù),加快了處理速度;
(5)TID碼、項(xiàng)目標(biāo)識(shí)符、邏輯運(yùn)算、散列、加密和校驗(yàn)等技術(shù)手段的有機(jī)結(jié)合,以及設(shè)置EPC區(qū)讀寫保護(hù)狀態(tài)為帶密碼可寫或永久性不可寫,不能通過讀寫數(shù)據(jù)的方式對(duì)用戶數(shù)據(jù)和系統(tǒng)進(jìn)行非法進(jìn)入、使用、泄密、破壞、修改、檢視、銷毀、制造偽卡,保證了信息安全性(機(jī)密性、完整性、可用性)和可靠性;加密防止竊聽,保證了機(jī)密性;單向散列函數(shù)防止篡改,保證了完整性;消息認(rèn)證碼防止篡改和偽裝,保證了完整性和認(rèn)證。
(6)現(xiàn)有的產(chǎn)品和系統(tǒng)可通過修改軟件來實(shí)現(xiàn)本方法,改造成本低,有利于推廣。
本發(fā)明的用戶數(shù)據(jù)寫入與讀取系統(tǒng)與本發(fā)明的用戶數(shù)據(jù)寫入與讀取方法一一對(duì)應(yīng),在上述用戶數(shù)據(jù)寫入與讀取方法的實(shí)施例闡述的技術(shù)特征及其有益效果均適用于用戶數(shù)據(jù)寫入與讀取系統(tǒng)的實(shí)施例中,特此聲明。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。