基于IC卡的稅務(wù)征收管理系統(tǒng)
?7816―4:IC卡用于國(guó)際交換的行業(yè)間命令;
?7816―5:IC卡應(yīng)用識(shí)別時(shí)的編號(hào)和登記過(guò)程;
?7816―6:IC卡用于行業(yè)間的數(shù)據(jù)元素。
在IC卡的類(lèi)型選擇上,本系統(tǒng)選用的是Atmel公司的CPU卡、西門(mén)子公司的邏輯加密卡和存儲(chǔ)卡。CPU卡用于DKS加密算法的運(yùn)算,產(chǎn)生密鑰等關(guān)鍵數(shù)據(jù);邏輯加密卡用于保存重要數(shù)據(jù);存儲(chǔ)卡用于存放一般數(shù)據(jù)。本文引用地址:http://www.biyoush.com/article/158094.htm
3 DES加密算法
密碼學(xué)是設(shè)計(jì)密碼和破譯密碼的技術(shù)統(tǒng)稱(chēng)。欲加密的數(shù)據(jù)稱(chēng)為明文,明文經(jīng)某種加密算法的作用后轉(zhuǎn)換成密文,加密算法中使用的參數(shù)稱(chēng)為加密密鑰。密文經(jīng)解密算法作用后形成明文輸出,解密算法也有一個(gè)密鑰,它和加密密鑰可以相同也可以不同。密碼學(xué)的一條基本原則是加密算法是公開(kāi)的,既然加密算法是公開(kāi)的,那么真正的秘密就在于密鑰了。密鑰是必須保密的,它通常是一個(gè)字符串,并且可以按需要頻繁更換。
傳統(tǒng)的加密方法可以分成兩類(lèi):替代密碼和換位密碼。在替代密碼中,用一組密文字母來(lái)代替一組明文字母以藏匿明文,但保持明文字母的位置不變。在換位密碼中(換位有時(shí)也稱(chēng)為排列),它不對(duì)明文字母進(jìn)行變換,只是將明文字母的次序進(jìn)行重新排列。
現(xiàn)代密碼學(xué)也使用替代密碼和換位密碼的思想,但和傳統(tǒng)密碼學(xué)的側(cè)重點(diǎn)不同。傳統(tǒng)密碼學(xué)的加密算法比較簡(jiǎn)單,主要通過(guò)加長(zhǎng)密鑰的長(zhǎng)度來(lái)提高保密程度,而現(xiàn)代密碼學(xué)正好相反,它使用極為復(fù)雜的加密算法,即使破譯者能夠?qū)θ我鈹?shù)量的選擇明文進(jìn)行加密,他也無(wú)法找出破譯密文的方法。
DES是由IBM公司研制的,1977年1月被美國(guó)政府宣布作為公開(kāi)的國(guó)家數(shù)據(jù)加密標(biāo)準(zhǔn),該標(biāo)準(zhǔn)一經(jīng)確立,立即被大批廠(chǎng)家采納用于它們的安全產(chǎn)品中。DKS是一種分組密碼,它接收一個(gè)64位(BIT)的數(shù)據(jù)塊并將它轉(zhuǎn)變成相同長(zhǎng)度的密文。密鑰是64位(BIT),其中8位(BIT)是奇偶校驗(yàn)位,因而實(shí)際密鑰數(shù)是56位(BIT)。DES加密算法可用圖3來(lái)簡(jiǎn)單說(shuō)明。64位(BIT)的明文首先經(jīng)過(guò)一個(gè)初始排列將順序打亂,然后進(jìn)行16次乘積變換,目的是使明文盡可能變得紛亂不堪,最后經(jīng)過(guò)一個(gè)與初始排列相反的排列變換,輸出64位(BIT)的密文。DES的解密密鑰同加密密鑰相同,解密過(guò)程與加密過(guò)程的步驟正好相反。
4 軟件設(shè)計(jì)
SZX―l智能IC卡稅務(wù)征收管理系統(tǒng)的軟件由PC機(jī)軟件、IC卡讀寫(xiě)器軟件以及PC機(jī)與IC卡讀寫(xiě)器通信軟件等組成。PC機(jī)軟件采用VB6.0編寫(xiě),IC卡讀寫(xiě)器軟件采用C51編寫(xiě)。
4.1 串行通信軟件設(shè)計(jì)
在設(shè)計(jì)PC機(jī)與單片機(jī)通信程序時(shí),應(yīng)首先明確數(shù)據(jù)傳輸協(xié)議,如:數(shù)據(jù)傳輸?shù)膸袷?、?shù)據(jù)校驗(yàn)方法、PC機(jī)與單片機(jī)在實(shí)現(xiàn)異步通信時(shí)的工作方式等等。本系統(tǒng)中的各項(xiàng)約定為:
(1)波特率:9600
(2)數(shù)據(jù)格式一幀10位:起始位1位,數(shù)據(jù)位8位,停止位1位
(3)數(shù)據(jù)校驗(yàn)方法:反饋一確認(rèn)法
(4)異步通信工作方式:PC機(jī)使用MSComm串口控件;單片機(jī)采用查詢(xún)方式收發(fā)數(shù)據(jù),其串行口工作于方式l。
MSComm串口控件是Microsoft公司提供的ActiveX控件,其目的是為了簡(jiǎn)化使用者在Windows下的串行通信編程。MSComm控件既可以提供簡(jiǎn)單的串行口通信功能,也可用于創(chuàng)建功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。使用MSComm控件實(shí)現(xiàn)串行通信控制通常有以下幾步:
(1)加入通信部件(即加入MSComm對(duì)象);
(2)設(shè)置通信端口號(hào)(即設(shè)置CommPort屬性);
(3)設(shè)置通信協(xié)議(即設(shè)置HandShaking屬性。該協(xié)議是一個(gè)用于控制流速而約定的內(nèi)部硬件握手協(xié)議);
(4)設(shè)置通信波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)等參數(shù)(即設(shè)置Settings屬性);
(5)打開(kāi)通信端口(即將PortOpen屬性設(shè)為T(mén)rue);
(6)接收或發(fā)送字符串(即使用Input或Output屬性);
(7)關(guān)閉通信端口(即將PortOpen屬性設(shè)為False)。
4.2 系統(tǒng)軟件功能
本系統(tǒng)在PC機(jī)上運(yùn)行的主要功能介面如下:
(1)軟件運(yùn)行后屏幕顯示:
評(píng)論