3 DES加密算法
密码学是设计密码和破译密码的技术统称。欲加密的数据称为明文,明文经某种加密算法的作用后转换成密文,加密算法中使用的参数称为加密密钥。密文经解密算法作用后形成明文输出,解密算法也有一个密钥,它和加密密钥可以相同也可以不同。密码学的一条基本原则是加密算法是公开的,既然加密算法是公开的,那么真正的秘密就在于密钥了。密钥是必须保密的,它通常是一个字符串,并且可以按需要频繁更换。
传统的加密方法可以分成两类:替代密码和换位密码。在替代密码中,用一组密文字母来代替一组明文字母以藏匿明文,但保持明文字母的位置不变。在换位密码中(换位有时也称为排列),它不对明文字母进行变换,只是将明文字母的次序进行重新排列。
现代密码学也使用替代密码和换位密码的思想,但和传统密码学的侧重点不同。传统密码学的加密算法比较简单,主要通过加长密钥的长度来提高保密程度,而现代密码学正好相反,它使用极为复杂的加密算法,即使破译者能够对任意数量的选择明文进行加密,他也无法找出破译密文的方法。
DES是由IBM公司研制的,1977年1月被美国政府宣布作为公开的国家数据加密标准,该标准一经确立,立即被大批厂家采纳用于它们的安全产品中。DKS是一种分组密码,它接收一个64位(BIT)的数据块并将它转变成相同长度的密文。密钥是64位(BIT),其中8位(BIT)是奇偶校验位,因而实际密钥数是56位(BIT)。DES加密算法可用图3来简单说明。64位(BIT)的明文首先经过一个初始排列将顺序打乱,然后进行16次乘积变换,目的是使明文尽可能变得纷乱不堪,最后经过一个与初始排列相反的排列变换,输出64位(BIT)的密文。DES的解密密钥同加密密钥相同,解密过程与加密过程的步骤正好相反。
4 软件设计
SZX—l智能IC卡税务征收管理系统的软件由PC机软件、IC卡读写器软件以及PC机与IC卡读写器通信软件等组成。PC机软件采用VB6.0编写,IC卡读写器软件采用C51编写。
4.1 串行通信软件设计
在设计PC机与单片机通信程序时,应首先明确数据传输协议,如:数据传输的帧格式、数据校验方法、PC机与单片机在实现异步通信时的工作方式等等。本系统中的各项约定为:
(1)波特率:9600
(2)数据格式一帧10位:起始位1位,数据位8位,停止位1位
(3)数据校验方法:反馈一确认法
(4)异步通信工作方式:PC机使用MSComm串口控件;单片机采用查询方式收发数据,其串行口工作于方式l。
MSComm串口控件是Microsoft公司提供的ActiveX控件,其目的是为了简化使用者在Windows下的串行通信编程。MSComm控件既可以提供简单的串行口通信功能,也可用于创建功能完备的、事件驱动的高级通信工具。使用MSComm控件实现串行通信控制通常有以下几步:
(1)加入通信部件(即加入MSComm对象);
(2)设置通信端口号(即设置CommPort属性);
(3)设置通信协议(即设置HandShaking属性。该协议是一个用于控制流速而约定的内部硬件握手协议);
(4)设置通信波特率、数据位数、停止位数、奇偶校验等参数(即设置Settings属性);
(5)打开通信端口(即将PortOpen属性设为True);
(6)接收或发送字符串(即使用Input或Output属性);
(7)关闭通信端口(即将PortOpen属性设为False)。
4.2 系统软件功能
本系统在PC机上运行的主要功能介面如下:
(1)软件运行后屏幕显示: