长春工业大学人文信息学院毕业设计(论文)
式通过密钥卡传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据在自动加油机控制系统的安全性和可靠性。通过定期在通信网络源端和目的端同时改用新的Key,便能更进一步提高数据的保密性。
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,整个算法的主流程如下:
第一步:输入64个二进制位明码数据区组,
T=tlt2??t64
按初始换位IP(见表1)进行换位,得到区组
B(0)=b1(0)b2(0)??b64(0)=t58t50??t7
表1 初始换位表IP
58 50 12 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
第二步:设B(ii)=b1(i)b2(i)??b64(i)是第i+1次迭代的64个二进制位输入区组,将B(i)分为左右两个大小相等的部分,每部分为一个32位二进制的数据块
L(i)=l1(i)l2(i)??132(i)=bl(i)b2(i)??b32(i)
把R(i)视为由8个4位二进制的块组成
r1(i)r2(i)r3(i)r4(i) r5(i)r6(i)r7(i)r8(i) ??
r29(i)r30(i)r31(i)r32(i)
通过循环抄录相邻块的相邻块,把它们再扩充为8个6位二进制的块
r32(i)rl(i)r2(i)r3(i)r4(i)r5(i) r4(i)r5(i)r6(i)r7(i)r8(i)r9(i)
- 10 -
R(i)=r1(i)r2(i)??r32(i)=b33(i)b34(i)??b64(i)
长春工业大学人文信息学院毕业设计(论文)
??
r28(i)r29(i)r30(i)r31(i)r32(i)rl(i) 用E(R(i))表示这个变换,称为扩充函数。
第三步:在第i+1次迭代中,用48位二进制K(i+l)=kl(i+l)k2(i+l)?? 其中k48(i+l)与E(R(i)按位相加(逻辑异或),得
r32(i)+kl(i+l)rl(i)+k2(i+l)??r5(i)+k6(i+l) r4(i)+k7(L+l)r5(L)+k8(i+l)??9(i)+kl2(i+l) ??
r28(i)+k48(i+l)r29(i)+k44(i+l)...rl(i)+k48(i+l)
第四步:将以上第j个(1 第五步:八个替代函数SJ(1 yl(i)y2(i)??y32(i) 把它作为换位函数P的输人,得到输出 X(i)=xl(i)x2(i)??x32(i) =yl6(i)y17(i)??y25(i) 第六步:把L(i)与X(i)按位相加,形成R(i+1),且令R(i)为l,(i/1),即得到经第i+1次迭代加密后的输出L(i+1)R(i+1),其中 L(i+l)=R(i) R(i+l)=L(i)+f(R(i),K(i+l)) (i=0, 1,2,. ..... , 15) 第七步:对R(16)L(16)作逆初始换位IP,得到密码文。 IC卡明文由8字节16进制数据组成。IC卡明文二2字节客户卡号+2字节客户卡号反码+1字节卡使用序号十3字节的本次设置密码。表2为IC卡密码生成规则例表。 其中,IC卡明文为0001FFFE01645645U,由客户卡号、客户卡号反码、卡使用序号及本次设置密码组成:密钥为4616168484648151H,由8字节16进制数组成,IC卡额度密钥需要妥善保存,是整个加密系统安全机制的核心。卡密码由明文经 - 11 - 长春工业大学人文信息学院毕业设计(论文) DES算法加密后生成8字节密文:60F7B2E65D93B512H,取密文前3个字节作为卡密码。 取密文第8字节12H写人IC卡中,用于校验密码前判断密码是否正确。 表2 IC卡密码生成规则例表 明文 密匙 密文 卡密码 客户卡号 00H 64H 60H 01H 16H F7H 客户卡号反码 FFH 16H B2H 60H FEH 84H E6H F7H 卡使用 序号 01H 84H 5DH B2H 本次设置密码 64H 64H 93H 56H 81H B5H 45H 51H 12H 2.4 单片机的选择 2.4.1 单片机应用概况 目前微处理器有很多种,在我国,MCS-51系列的单片机用的比较广泛,这种单片机性能可靠,价格便宜,广泛应用在工业上的各个领域。以最开始的8031为代表,但是8031单片机没有内部RAM和ROM,程序和数据的存储很不方便,所以本设计采用了803l的改进型89C51,89C51内部自带了4KB的EPROM,和128B的内部RAM。可以方便写入/擦除程序。 单片机应用的主要领域有智能产品、智能仪表、测试系统、数控控制机、智能接口。 目前用户在构成应用系统时有三种方式可供选择: 1.专用系统:这种系统的扩展与配置完全是按照应用系统的功能要求设计的。 2.模块化系统:这种系统,将典型配置做成用户系统,以供用户选择使用。 3.单片单板机系统:受通用CPU单板机的影响硬件按照典型应用系统配置并配有监控程序具有自开发能力。 - 12 - 长春工业大学人文信息学院毕业设计(论文) 2.4.2 AT89C51功能简介 AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS 8位单片机,片内含有4K字节的可反复擦写的只读程序存储器(EPROM)和128字节的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价的应用场合。可灵活应用于各种领域。 1.其主要特性: (1) 与MCS-5l兼容 (2) 4K字节可编程FLASH存储器 (3) 寿命:1000写/擦循环 (4) 数据保留时间:10年 (5) 全静态工作:0Hz~24MHz (6) 三级程序存储器锁定 (7) 128*8位内部RAM (8) 32可编程I/O线 (9) 两个16位定时器/计数器 (10) 5个中断源 (11) 可编程串行通道 (12) 低功耗的闲置和掉电模式 (13) 片内振荡器和时钟电路 2.AT89C51管脚排列及说明:如图2-2。 - 13 - 长春工业大学人文信息学院毕业设计(论文) 图2-2 AT89C5l双列直插封装管脚排列 123456781011121314151617930293120P1.0/T2P1.1/T2EXP1.2/RXD1P1.3/TXD1P1.4/INT2P1.5/INT3P1.6/INT4P1.7/INT5P3P3P3P3P3P3P3P3.0.1.2.3.4.5.6.7/RXD0/TXD0INT0INT1/T0/T1/WR/RDVCCP0P0P0P0P0P0P0P0.0.1.2.3.4.5.6.6/AD0/AD1/AD2/AD3/AD4/AD5/AD6/AD740393837363534333221222324252627281918RSTALEPSENEAGNDAT89C51P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15X1X2 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏极开路双向I/O口,每管脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻抗输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入l后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上3拉的缘故。P22口当用于外部程序存储器或16位地址外部数据存储器进行存取 - 14 -