專利名稱:稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明是一種可以應(yīng)用于稅控收款機(jī)的軟件版本智能升級(jí)加密設(shè)計(jì)方案,用于信息技術(shù)與電子技術(shù)與自動(dòng)化技術(shù)中的稅控設(shè)備技術(shù)領(lǐng)域,以及計(jì)算機(jī)技術(shù)中的加解密認(rèn)證技術(shù)。
背景技術(shù):
稅務(wù)是國(guó)家經(jīng)濟(jì)的命脈,因而稅控產(chǎn)品的設(shè)計(jì)非常重要。由于稅控產(chǎn)品的應(yīng)用范圍廣泛,產(chǎn)品軟件的更換和升級(jí)比較頻繁。這就要求稅控設(shè)備的軟件升級(jí)具有靈活易行的特性。由于軟件升級(jí)方式通常采用USB存儲(chǔ)盤、以太網(wǎng)等多種形式的介質(zhì),而同時(shí)稅控產(chǎn)品具有嚴(yán)格的安全性要求,這需要軟件的升級(jí)方式必須具有高度的安全性。
這段情況是這樣,常規(guī)的升級(jí)方法,是不采用加密認(rèn)證方式的。加密認(rèn)證的系統(tǒng)構(gòu)建是我們的發(fā)明中提出的。下面一段話可能來(lái)自與別的稅控收款機(jī)的程序升級(jí)方法,那么我們的發(fā)明優(yōu)勢(shì)就在于一切用程序軟件構(gòu)成,無(wú)需外部智能卡認(rèn)證。(在常規(guī)密碼中,收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價(jià)的,即對(duì)稱加密算法計(jì)算。DES及其各種變形是常用的算法,DES是分塊加密的,將明文分割成64bits的塊。
CN200410067248.6涉及一種稅控收款機(jī)控制軟件安全更新的方法及裝置,在稅控收款機(jī)進(jìn)行軟件更新下載操作之前,稅控收款機(jī)必須驗(yàn)證由其他載體提供的軟件更新下載安全碼,該安全碼根據(jù)每臺(tái)稅控收款機(jī)的特性參數(shù),如具有唯一性的機(jī)器編碼,通過(guò)不對(duì)稱性加密運(yùn)算獲得數(shù)字簽名安全碼,存貯在隨機(jī)出售的智能卡中。
至少包括以下順序的步驟A、稅控收款機(jī)安全碼的建立,后臺(tái)管理系統(tǒng)(1)輸入機(jī)器編碼,后臺(tái)管理系統(tǒng)(1)將所述的機(jī)器編碼發(fā)送給SAM卡讀寫模塊(2),SAM卡讀寫模塊(2)根據(jù)機(jī)器編碼和自身的密鑰進(jìn)行非對(duì)稱算法加密后獲得數(shù)字簽名安全碼,并發(fā)給后臺(tái)管理系統(tǒng)(1),后臺(tái)管理系統(tǒng)(1)將所述的數(shù)字簽名安全碼發(fā)送至智能卡讀寫模塊(3),并在智能卡中存儲(chǔ);B、稅控收款機(jī)智能卡的確認(rèn),稅控收款機(jī)收到軟件更新的下載指令后,由稅控收款機(jī)的微處理器(4)向智能卡讀寫模塊(6)發(fā)送身份認(rèn)證請(qǐng)求命令,智能卡讀寫模塊(6)向稅控收款機(jī)的微處理器(4)發(fā)送多位隨機(jī)數(shù),微處理器(4)根據(jù)稅控收款機(jī)智能卡身份認(rèn)證密鑰和接收到的多位隨機(jī)數(shù),由對(duì)稱算法產(chǎn)生一個(gè)結(jié)果,智能卡讀寫模塊(6)根據(jù)所發(fā)送的多位隨機(jī)數(shù)和自己的身份認(rèn)證密鑰,也由對(duì)稱算法產(chǎn)生一個(gè)結(jié)果,微處理器(4)對(duì)所述兩個(gè)結(jié)果進(jìn)行比較,只有在上述兩個(gè)加密結(jié)果相同情況下,微處理器(4)確認(rèn)智能卡有效;C、稅控收款機(jī)安全碼認(rèn)證,由微處理器(4)對(duì)智能卡讀寫模塊(6)進(jìn)行數(shù)字簽名讀取,微處理器(4)根據(jù)稅控收款機(jī)安全碼認(rèn)證密鑰進(jìn)行非對(duì)稱算法解密,獲得解密后的稅控收款機(jī)機(jī)器編碼,微處理器(4)讀取稅控收款機(jī)存儲(chǔ)的機(jī)器編碼,微處理器(4)對(duì)所述兩個(gè)機(jī)器編碼進(jìn)行比較,只有在上述兩個(gè)機(jī)器編碼結(jié)果相同情況下,稅控收款機(jī)微處理器確認(rèn)安全碼有效;D、稅控收款機(jī)確認(rèn)數(shù)字簽名安全碼有效后,稅控收款機(jī)微處理器(4)通過(guò)標(biāo)準(zhǔn)串行接口(7)從PC機(jī)(8)中調(diào)出更新軟件,下載到稅控收款機(jī)程序存儲(chǔ)器(5)。)然而,上述方法比較復(fù)雜,對(duì)保證軟件完整性的技術(shù)沒(méi)有好的方案。還需要多個(gè)硬件卡。為了解決稅控設(shè)備設(shè)計(jì)中軟件升級(jí)的安全性方面的問(wèn)題,本發(fā)明對(duì)于稅控設(shè)備的軟件升級(jí)方式作了加密認(rèn)證、數(shù)字簽名等方面的設(shè)計(jì),保證了軟件升級(jí)序列版本號(hào)、升級(jí)時(shí)間以及發(fā)行方、用戶方身份的一致性,以及待升級(jí)軟件本身的安全性和完整性。
發(fā)明內(nèi)容
本發(fā)明目的是解決稅控設(shè)備設(shè)計(jì)中軟件升級(jí)的安全性方面的問(wèn)題,保證軟件升級(jí)序列版本號(hào)、升級(jí)時(shí)間以及發(fā)行方、用戶方身份的一致性,以及待升級(jí)軟件本身的安全性和完整性。
在需要更新軟件下載時(shí),首先對(duì)智能卡進(jìn)行身份認(rèn)證,在確認(rèn)智能卡身份正確后,進(jìn)行安全碼的認(rèn)證,通過(guò)對(duì)安全碼非對(duì)稱算法解密,獲得的解密碼與稅控收款存儲(chǔ)的機(jī)器編碼相同時(shí),稅控收款機(jī)才進(jìn)行軟件更新下載。本發(fā)明采用具備唯一性、高安全性的數(shù)字簽名安全碼認(rèn)證方法,從根本上提高稅控收款機(jī)系統(tǒng)軟件更新下載的安全性和可靠性。
本技術(shù)解決方案是本發(fā)明采用對(duì)稱加密算法對(duì)可執(zhí)行程序、軟硬件版本進(jìn)行加密。
1、采用DES對(duì)稱加密算法,對(duì)于待升級(jí)的可執(zhí)行程序和軟件版本進(jìn)行加密。DES算法以及密鑰保存在程序發(fā)布端和稅控機(jī)端。
2、采用MD5等散列函數(shù),對(duì)于加密后的文件進(jìn)行消息映射提取,得到驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端。
3、采用MD5等散列函數(shù),對(duì)于加密后的文件、待升級(jí)的機(jī)器編號(hào)、待升級(jí)稅控機(jī)的軟件版本差異、以及程序發(fā)布端產(chǎn)生的1字節(jié)隨機(jī)數(shù)進(jìn)行消息映射提取,產(chǎn)生驗(yàn)證碼,進(jìn)行驗(yàn)證。即提取得到驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端。驗(yàn)證碼,并加上1字節(jié)隨機(jī)數(shù)形成5字節(jié)驗(yàn)證碼,通過(guò)升級(jí)工作人員攜帶。
4、升級(jí)驗(yàn)證過(guò)程中,首先由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序進(jìn)行消息映射提取。并將生成的驗(yàn)證碼與USB或者網(wǎng)絡(luò)媒介發(fā)布的驗(yàn)證碼進(jìn)行比較。如果兩者不一致,則驗(yàn)證失敗,表明程序在分發(fā)途中遇到篡改,退出升級(jí)。
5、由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序加上本機(jī)的機(jī)器編號(hào)、現(xiàn)有軟件版本與待升級(jí)的軟件版本的差異值、以及程序發(fā)布端產(chǎn)生的隨機(jī)數(shù)(即升級(jí)人員所攜帶的第5字節(jié)的驗(yàn)證碼),進(jìn)行消息映射提取。如果兩者不一致,則驗(yàn)證失敗,表明程序與待升級(jí)的稅控機(jī)并不對(duì)應(yīng),退出升級(jí)。
6、稅控機(jī)將加密的程序分塊讀取,并用密鑰解密。第一塊內(nèi)容包含了軟件的版本信息,可以由稅控機(jī)產(chǎn)生提示信息,由用戶確認(rèn)。
7、稅控機(jī)將加密的程序分塊讀取解密,并逐塊覆蓋原有的可執(zhí)行程序文件,完成升級(jí)過(guò)程。
本發(fā)明有益效果1、保證升級(jí)可執(zhí)行程序發(fā)布過(guò)程中的保密性。
2、保證升級(jí)過(guò)程中可執(zhí)行程序的完整性和不可篡改性。
3、實(shí)現(xiàn)了升級(jí)中軟件版本以及版本差異的驗(yàn)證過(guò)程。
4、本發(fā)明實(shí)現(xiàn)了升級(jí)過(guò)程中對(duì)于待升級(jí)稅控機(jī)的機(jī)器編號(hào)的驗(yàn)證。解決稅控設(shè)備設(shè)計(jì)中軟件升級(jí)的安全性方面的問(wèn)題,保證軟件升級(jí)序列版本號(hào)、升級(jí)時(shí)間以及發(fā)行方、用戶方身份的一致性,以及待升級(jí)軟件本身的安全性和完整性。本發(fā)明采用具備唯一性、高安全性的安全碼認(rèn)證方法,從根本上提高稅控收款機(jī)系統(tǒng)軟件更新下載的安全性和完整性、可靠性。
圖1是本發(fā)明程序加密過(guò)程框2是本發(fā)明程序驗(yàn)證過(guò)程框3是本發(fā)明利用DES實(shí)現(xiàn)框圖具體實(shí)現(xiàn)方式1、采用DES對(duì)稱加密算法,對(duì)于待升級(jí)的可執(zhí)行程序和軟件版本進(jìn)行加密。為了減少計(jì)算量和節(jié)省空間,采用分塊加密的方法。經(jīng)過(guò)加密產(chǎn)生的文件通過(guò)USB、網(wǎng)絡(luò)等媒介發(fā)布。DES算法以及密鑰保存在程序發(fā)布端和稅控機(jī)端,如附圖1所示。
2、采用MD5等散列函數(shù),對(duì)于加密后的文件進(jìn)行消息映射提取,得到16字節(jié)的驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端,如附圖1所示。
3、采用MD5等散列函數(shù),對(duì)于加密后的文件、待升級(jí)的機(jī)器編號(hào)、待升級(jí)稅控機(jī)的軟件版本差異、以及程序發(fā)布端產(chǎn)生的1字節(jié)隨機(jī)數(shù)進(jìn)行消息映射提取,得到16字節(jié)的驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端。將16字節(jié)驗(yàn)證碼分4組異或產(chǎn)生4字節(jié)的驗(yàn)證碼,并加上1字節(jié)隨機(jī)數(shù)形成5字節(jié)驗(yàn)證碼,通過(guò)升級(jí)工作人員攜帶,如附圖1所示。
4、升級(jí)驗(yàn)證過(guò)程中,首先由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序進(jìn)行消息映射提取。并將生成的16字節(jié)的驗(yàn)證碼與USB或者網(wǎng)絡(luò)媒介發(fā)布的驗(yàn)證碼進(jìn)行比較。如果兩者不一致,則驗(yàn)證失敗,表明程序在分發(fā)途中遇到篡改,退出升級(jí)。如附圖2所示。
5、第二步,由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序加上本機(jī)的機(jī)器編號(hào)、現(xiàn)有軟件版本與待升級(jí)的軟件版本的差異值、以及程序發(fā)布端產(chǎn)生的隨機(jī)數(shù)(即升級(jí)人員所攜帶的第5字節(jié)的驗(yàn)證碼),進(jìn)行消息映射提取,并將生成的16字節(jié)的驗(yàn)證碼與升級(jí)人員所攜帶的前4字節(jié)的驗(yàn)證碼進(jìn)行比較。如果兩者不一致,則驗(yàn)證失敗,表明程序與待升級(jí)的稅控機(jī)并不對(duì)應(yīng),退出升級(jí)。如附圖2所示。
6、第三步,稅控機(jī)將加密的程序分塊讀取,并用密鑰解密。第一塊內(nèi)容包含了軟件的版本信息,可以由稅控機(jī)產(chǎn)生提示信息,由用戶確認(rèn)。如附圖2所示。
7、第四步,稅控機(jī)將加密的程序分塊讀取解密,并逐塊覆蓋原有的可執(zhí)行程序文件,完成升級(jí)過(guò)程。如附圖2所示。
使用標(biāo)準(zhǔn)DES對(duì)稱加密Public Function EncryptDes(ByVal SourceStr As String)As String”get encodekey string from web.configDim skey As Stringskey=ConfigurationSettings.AppSettings(″EnCodeKey″)”put the input string into the byte arrayDim des As DESCryptoServiceProvider=New DESCryptoServiceProvider()Dim inputByteArray As Byte()inputByteArray=Encoding.Default.GetBytes(SourceStr)”set encrypt object and skeydes.Key=ASCIIEncoding.ASCII.GetBytes(skey)des.IV=ASCIIEncoding.ASCII.GetBytes(skey)Dim ms As MemoryStream=New MemoryStream()Dim cs As CryptoStream=New CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write)Dim sw As StreamWriter=New StreamWriter(cs)sw.Wri te(SourceStr)sw.Flush()cs.FlushFinalBlock()ms.Flush()Return Convert.ToBase64String(ns.GetBuffer(),0,ms.Length)End FunctionMD5算法是Ron Rivest于1992年發(fā)明的,它把數(shù)據(jù)分成512-bit塊,產(chǎn)生128-bit的消息摘要值。在最近數(shù)年,MD5是最主要的消息摘要算法之一。
MD5算法的實(shí)現(xiàn)分為填充消息、確定附加消息長(zhǎng)度、初始化緩沖區(qū)、分組處理消息、輸出消息摘要幾個(gè)部分。MD5以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。
1、填充消息從M填充到M1中|M1|≡448 mod 512|M1|>|M|如果|M|≡448 mod 512,則|M1|=|M|+512填充內(nèi)容100…0附加消息長(zhǎng)度M1填充到M2,消息長(zhǎng)度以64位表示若|M1|>264,則僅取低64位|M2|為512的倍數(shù),可分為長(zhǎng)度為512的L個(gè)分組Y0,Y1,…,YL-12、初始化緩沖區(qū)緩沖區(qū)長(zhǎng)度128位用四個(gè)32位的寄存器(A,B,C,D)表示A=01 23 45 67(0x67452301)B=89 AB CD EF(0xEFCDAB89)C=FE DC BA 98(0x98BADCFE)D=76 54 32 10(0x10325476)括號(hào)內(nèi)為每個(gè)寄存器的實(shí)際數(shù)值,前面為實(shí)際的存儲(chǔ)順序。
3、分組處理消息算法的核心是壓縮函數(shù),由四輪運(yùn)算組成,每輪進(jìn)行16步迭代。每輪使用不同的邏輯函數(shù),記為F,G,H,I。T是事先產(chǎn)生的表格,包含64項(xiàng),每項(xiàng)32位。512位的消息在每輪分為16個(gè)分組,每個(gè)分組X為32位。
CV0=IVCVi=HMD5(CVi-1,Yi)每一輪包含對(duì)緩沖區(qū)ABCD的16步操作所組成的一個(gè)序列。
a←b+((a+g(b,c,d)+X[k]+T[i])<<<s)其中,a,b,c,d =緩沖區(qū)的四個(gè)字,以一個(gè)給定的次序排列;g =基本邏輯函數(shù)F,G,H,I之一;<<<s=對(duì)32位字循環(huán)左移s位X[k] =M[q×16+k]=在第q個(gè)512位數(shù)據(jù)塊中的第k個(gè)32位字T[i] =表T中的第i個(gè)32位字;+ =模232的加;第一輪運(yùn)算
·For(k=0;k<16;++k){A←B+((A+g1(B,C,D)+X[ρ1(k)]+T[16×0+K+1])<<<s1[K mod 4])(A,B,C,D)←(A,B,C,D)>>>32}·g1(B,C,D)=(B&C)|(B&D)·ρ1(k)=K,0≤k<16·s1
=[7,12,17,22]第二輪運(yùn)算·For(k=0;k<16;++k){A←B+((A+g2(B,C,D)+X[ρ2(k)]+T[16×1十k+1])<<<s2[k mod 4])(A,B,C,D)←(A,B,C,D)>>>32}·g2(B,C,D)=(B&D)|(C&D)·ρ2(k)=(1+5k)mod 16,0≤k<16·s2
=[5,9,14,20]第三輪運(yùn)算·For(k=0;k<16;++k){A←B+((A+g3(B,C,D)+X[ρ3(k)1+T[16×2+K+1])<<<s3[k mod 4])(A,B,C,D)←(A,B,C,D)>>>32}·g3(B,C,D)=BCD·ρ3(k)=(5+3k)nod 16,(0≤k<16·s3
=[4,11,16,23]第四輪運(yùn)算·For(k=0;k<16;++k){A←B+((A+g4(B,C,D)+X[ρ4(k)]+T[16×3+k+1])<<<s4[K mod 4])(A,B,C,D)←(A,B,C,D)>>>32}·g4(B,C,D)=C(B|D)·ρ4(k)=7k mod 16,0≤k<16·s4
=[6,10,15,21]
CV0=IVCVq+1=SUM32(CVq,RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]])MD=CVL其中IV=ABCD的初始值(見(jiàn)步驟3)Yq=消息的第q個(gè)512位數(shù)據(jù)塊L =消息中數(shù)據(jù)塊數(shù);CVq =鏈接變量,用于第q個(gè)數(shù)據(jù)塊的處理RFx =使用基本邏輯函數(shù)x的一輪功能函數(shù)。
MD=最終消息摘要結(jié)果SUM32=分別按32位字計(jì)算的模232加法結(jié)果。
4、輸出消息摘要MD=CVL它使用56位密鑰對(duì)64位的數(shù)據(jù)塊進(jìn)行加密,并對(duì)64bits的數(shù)據(jù)塊進(jìn)行16輪編碼。與每輪編碼時(shí),一個(gè)48bits的“每輪”密鑰值由56bits的完整密鑰得出來(lái)。由于密鑰長(zhǎng)度相對(duì)比較短,我們采用三重DES。加密成為三步,每一步的密鑰都不一樣,相當(dāng)于168Bits的以密鑰效果。
令i表示迭代次數(shù),表示逐位模2求和,f為加密函數(shù)。DES的加密和解密過(guò)程表示如下。
L0R0←IP(<64bit輸入碼>)Li←Ri-1i=1,2,Λ,16Ri←Li-1f(Ri-1,Ki) i=1,2,Λ,16<64bit密文>←IP-1(R16L16)R16L16←IP(<64bit密文>)Ri-1←Lii=16,15,Λ,1Li←Ri-1f(Ri-1,ki) i=16,15,Λ,1<64bit明文>←IP-1(R0L0)消息提取算法整個(gè)文件當(dāng)作一個(gè)大文本信息,通過(guò)其不可逆的字符串變換算法,產(chǎn)生了這個(gè)唯一的信息摘要。如果在以后傳播這個(gè)文件的過(guò)程中,無(wú)論文件的內(nèi)容發(fā)生了任何形式的改變(包括人為修改或者下載過(guò)程中線路不穩(wěn)定引起的傳輸錯(cuò)誤等),只要對(duì)這個(gè)文件重新計(jì)算消息摘要時(shí)就會(huì)發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的只是一個(gè)不正確的文件。
權(quán)利要求
1.稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法,其特征是采用下述步驟(1)采用DES對(duì)稱加密算法,對(duì)于待升級(jí)的可執(zhí)行程序和軟件版本進(jìn)行加密。DES算法以及密鑰保存在程序發(fā)布端和稅控機(jī)端;(2)采用MD5等散列函數(shù),對(duì)于加密后的文件進(jìn)行消息映射提取,得到驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端;(3)采用MD5等散列函數(shù),對(duì)于加密后的文件、待升級(jí)的機(jī)器編號(hào)、待升級(jí)稅控機(jī)的軟件版本差異、以及程序發(fā)布端產(chǎn)生的1字節(jié)隨機(jī)數(shù)進(jìn)行消息映射提取,產(chǎn)生驗(yàn)證碼,進(jìn)行驗(yàn)證。即提取得到驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端。驗(yàn)證碼,并加上1字節(jié)隨機(jī)數(shù)形成5字節(jié)驗(yàn)證碼,通過(guò)升級(jí)工作人員攜帶;(4)升級(jí)驗(yàn)證過(guò)程中,首先由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序進(jìn)行消息映射提取。并將生成的驗(yàn)證碼與USB或者網(wǎng)絡(luò)媒介發(fā)布的驗(yàn)證碼進(jìn)行比較。如果兩者不一致,則驗(yàn)證失敗,表明程序在分發(fā)途中遇到篡改,退出升級(jí)。(5)由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序加上本機(jī)的機(jī)器編號(hào)、現(xiàn)有軟件版本與待升級(jí)的軟件版本的差異值、以及程序發(fā)布端產(chǎn)生的隨機(jī)數(shù)(即升級(jí)人員所攜帶的第5字節(jié)的驗(yàn)證碼),進(jìn)行消息映射提取;如果兩者不一致,則驗(yàn)證失敗,表明程序與待升級(jí)的稅控機(jī)并不對(duì)應(yīng),退出升級(jí);(6)稅控機(jī)將加密的程序分塊讀取,并用密鑰解密。第一塊內(nèi)容包含了軟件的版本信息,可以由稅控機(jī)產(chǎn)生提示信息,由用戶確認(rèn);(7)稅控機(jī)將加密的程序分塊讀取解密,并逐塊覆蓋原有的可執(zhí)行程序文件,完成升級(jí)過(guò)程。
2.根據(jù)權(quán)利要求1所述的稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法,其特征是減少計(jì)算量和節(jié)省空間,采用分塊加密的方法;經(jīng)過(guò)加密產(chǎn)生的文件通過(guò)USB、網(wǎng)絡(luò)等媒介發(fā)布。
3.根據(jù)權(quán)利要求1所述的稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法,其特征是采用MD5等散列函數(shù),對(duì)于加密后的文件、待升級(jí)的機(jī)器編號(hào)、待升級(jí)稅控機(jī)的軟件版本差異、以及程序發(fā)布端產(chǎn)生的1字節(jié)隨機(jī)數(shù)進(jìn)行消息映射提取,得到16字節(jié)的驗(yàn)證碼。這個(gè)散列函數(shù),同時(shí)保存在程序發(fā)布端和稅控機(jī)端。將16字節(jié)驗(yàn)證碼分4組異或產(chǎn)生4字節(jié)的驗(yàn)證碼,并加上1字節(jié)隨機(jī)數(shù)形成5字節(jié)驗(yàn)證碼,通過(guò)升級(jí)工作人員攜帶。
4.根據(jù)權(quán)利要求1所述的稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法,其特征是稅控機(jī)將加密的程序分塊讀取,并用密鑰解密;第一塊內(nèi)容包含了軟件的版本信息,可以由稅控機(jī)產(chǎn)生提示信息,由用戶確認(rèn)。
全文摘要
稅控設(shè)備軟件版本智能升級(jí)加密驗(yàn)證方法,采用下述步驟(1)采用DES對(duì)稱加密算法,對(duì)于待升級(jí)的可執(zhí)行程序和軟件版本進(jìn)行加密;(2)采用MD5等散列函數(shù),對(duì)于加密后的文件進(jìn)行消息映射提取,得到驗(yàn)證碼;(3)采用MD5等散列函數(shù),對(duì)于加密后的文件、待升級(jí)稅控機(jī)的軟件版本差異、以及程序發(fā)布端產(chǎn)生的1字節(jié)隨機(jī)數(shù)進(jìn)行消息映射提取,產(chǎn)生驗(yàn)證碼,進(jìn)行驗(yàn)證;(4)升級(jí)驗(yàn)證過(guò)程中,由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)對(duì)已經(jīng)加密的分發(fā)的程序進(jìn)行消息映射提取,并將驗(yàn)證碼與USB驗(yàn)證碼進(jìn)行比較;(5)由稅控機(jī)端使用與程序發(fā)布端相同的散列函數(shù)的隨機(jī)數(shù)進(jìn)行消息映射提?。?6)稅控機(jī)將加密的程序分塊讀取,并用密鑰解密。
文檔編號(hào)G06F9/445GK1949235SQ20061003982
公開(kāi)日2007年4月18日 申請(qǐng)日期2006年4月24日 優(yōu)先權(quán)日2006年4月24日
發(fā)明者王平, 朱海偉, 馮常偉 申請(qǐng)人:南京熊貓電子股份有限公司, 南京熊貓機(jī)電儀技術(shù)有限公司