DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 116|回复: 0
打印 上一主题 下一主题

基于TMS320VC5410 的DES 加密系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:04:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ????? 摘要: 数据加密标准DES 是对称密码体系中应用最广泛的算法之一。为了满足信息安全和加密型数据采集系统的密钥的有效存储, 设计基于TMS320VC5410 系列DSP 和SLE5542 型IC 卡的DES 加密系统。采用McBSP1 接口与CD4066 开关电源设计了IC 卡读卡器,并通过CCS 开发环境编写、下载和调试应用程序,完成了DSP 与SLE5542 卡之间的ISO7816-3 通信协议。另外通过McBSP0 连接MAX232 电平转换器,以软件形式实现了目标板从RS232 接口接收来自PC 机的明文数据,系统对其进行DES 加密后输出密文。实验结果表明系统可以正确读取IC 卡中的64 位密钥,完成数据加密后准确地显示在接收端,符合设计要求。
  数据加密是为了保证所传输信息的安全而在特定参数(称为密钥)的控制下按照某种规律对原始数据进行的人为扰乱, 将其转换成秘密形式的信息。数据加密标准(DataEncryption Standard, DES)是第一个广泛应用于商用数据保密的、公开的密码算法,在其公布和正式实施后,成为许多国家政府、银行和标准组织的信息安全处理标准。然而DES实现信息保密的前提是对于密钥的有效管理, 这就要求基于DES 的加密系统必须提供可靠、方便的密钥保存设备。同时在近20 年,DSP 处理器的性能得到很大改善, 软件和开发工具也得到相应发展, 价格大幅下降, 应用也越来越广泛。本文选用TI 公司TMS320VC54x 系列DSP,采用软件方式实现DES 加密算法,同时以集成电路卡(Integrated CircuitCard)作为密钥存储设备。为了解决DSP 的通用IO 口较少的问题, 使DSP 片上的一些特殊功能引脚工作在通用输入输出引脚状态显得尤为重要。本文结合DSP 运算速度快、片上资源多的特点,研究并实现基于DSP 的DES 加密系统及其与IC 卡以及终端PC 机之间的通信协议。
  1 DES 算法简介:
  DES 作为美国国家标准的加密算法, 既可用于加密又可用于解密。其加密过程主要分为3 个部分,如图1 所示。




  每轮中都有换位和代替运算; 最后再经过一个逆初始置换IP-1(为IP 的逆变换)输出一组64 bit 长的密文。
  对于数据较大的文件加密要求芯片具有很高的处理速度。出于保密通信系统的需求,该系统设计以IC 卡作为密钥的存储设备, 采用TI 公司TMS320VC54x 系列DSP 实现对来自PC 机的明文数据进行DES 加密处理。该方案运算速度快、保密性好,具有很高的可扩展性,用于保密的数据采集系统中,对来自数据采集模块的信号进行DES 加密后,传输给PC 机。
  2 系统硬件设计:
  结合运算速度,外设接口以及性价比等方面的考虑,选用TI 公司TMS320VC54x 系列16 位定点TMS320VC5410 型DSP 作为实现DES 加密的硬件平台。它具有较低的功耗与杰出的性能, 时钟最高频率可以达到100 MHz。另外,TMS320VC5410 片上提供了3 个可以设置为GPIO 接口的多通道缓冲串口(McBSP),这对外围设备接口子系统的设计至关重要。系统中除TMS320VC5410 基本的工作外围电路如电源晶振模块、Flash 模块和JTAG 接口模块以外,还主要包括以下2 部分:1)TMS320VC5410 与SLE5542 型IC 卡片的接口模块,主要用于系统工作时IC 卡向DSP 传送用于数据加密的密钥和卡片存储的其他一些用户信息;2)DSP与PC 主机的通信接口模块, 它是DSP 与个人电脑的通信接口, 主要用于DSP 接收明文数据以及将加密后的数据反馈至PC 机。
  2.1 McBSP 简介:
  TMS320VC5410 片内包含了3 个全双工的多通道缓冲串口(Multichannel Buffered Serial Ports,McBSP), 分别为McBSP0、McBSP1 和McBSP2。它们可以提供全双工通信、连续数据流的双缓冲数据寄存器、接收和发送独立的帧和时钟, 可以直接和系统中的其他器件接口连接并可以配置为通用IO 口。McBSP 与外设的数据交换,通过DX 引脚发送,RX 引脚接收。通信的时钟与帧信号由CLKX、CLKR、FSX 及FSR 引脚来控制。TMS320VC5410 对McBSP 的控制由2 个16 bit 的串口控制寄存器(SPCR[1,2]) 和引脚控制寄存器(PCR) 来实现。DSP 的CPU 或DMA 从数据接收寄存器(DRR [1,2]) 读取接收数据; 发送时, 向数据发送寄存器(DXR[1,2])写数据,数据写入后通过传输移位寄存器(XSR[1,2]),移位输出到DX 上。同样,从DR 上接收的数据,移位存储到接收移位寄存器(RSR[1,2]),并复制到接收缓存寄存器(RBR[1,2])。然后,再由(RBR[1,2])复制到DRR[1,2]。DRR[1,2]可以由CPU 或DMA 读出。
  2.2 DSP 与IC 卡连接模块:
  选用西门子公司SLE5542 型卡片, 其引脚定义和功能说明如表1 所示。它是一种按字节操作的多存储器逻辑加密卡,应答复位符合ISO7816-3 标准。该型卡片内置了3 个存储器:32 ×1 bit 的PROM 型保护存储器、256 ×1 bit 的EEPROM 型主存储器以及32×1 bit 的EEPROM 型加密存储器。主存储器可重复擦除使用,按字节操作,并分为保护数据区和应用数据区,读出均不受限制,但应用数据区的擦除和写入则受加密存储器中的密码及密码计数器保护。
表1 SLE5542 引脚定义和功能说明




  为了提高硬件的利用率和解决DSP 片上通用IO 口较少的问题, 本系统设计将McBSP1 配置为通过IO 口实现其与IC 卡片通信的模块。由于McBSP 引脚中的DX 只能配置用作通用输出脚,DR 只能配置用作通用输入脚, 不方便程序编写对引脚状态控制。所以在DSP 对卡片读写的硬件电路中选择了McBSP1 的FSR1、CLKR1、CLKX1、和FSX1 这4个引脚,它们均可以通过16 位的引脚控制寄存器(PCR)配置为通用I/O 引脚。FSR1 引脚通过CD4066 开关电源芯片来控制SLE5542 卡片的上电与掉电;由CLKR1 连接卡片的RST 触点,卡片复位时改变引脚的高低电平状态;CLKX1 引脚与IC 卡片的时钟触点CLK 相连,该引脚状态的高低变化为卡片正常工作提供时钟信号;FSX1 连接卡片数据I/O 触点,负责DSP 与IC 卡片之间读写命令字和用户有用数据的传送。注意CLKX1 和FSX1 引脚要接上拉电阻,且FSX1 配置的输入或输出状态要根据DSP 与IC 卡之间数据流向而定。
  为了使McBSP1 的相关引脚工作在系统需求的通用I/O状态, 首先需要将该串口的控制寄存器SPCR1 中的RRST位和SPCR2 中的XRST 位均设置为‘0’,使串口复位,串口操作禁止。然后设置引脚控制寄存器PCR 中的XIOEN 和RIOEN 为‘1’,使串口的接收和发送引脚均工作在通用I/O模式;另外将FSRM、CLKXM 和CLKRM 位均设置为‘1’,使FSR1、CLKX 和CLKR 引脚作为通用输出管脚, 将要输出的值分别存储在PCR 中的FSRP 位、CLKXP 和CLKRP; 对于FSXM 位的设置,则需要根据通信时的具体情况而定。
  2.3 DSP 与PC 通信模块设计:
  系统设计中选择了McBSP0 作为TMS320VC5410 从外界PC 机接收明文数据和输出密文的通道,直接通过PC 机的RS232 异步串口与TMS320VC5410 之间进行加密解密数据的传送。这种方法通过软件实现PC 机与DSP 之间的串行双工通信,它的硬件设计简单且不会过多占用CPU 的时间,可以实现数据的高速传输。
  RS232 异步串口采用负逻辑传送数据, 以10 V 电压状态表示数据‘0’,-10 V 电压状态表示数据‘1’;而DSP 的IO口则以3.3 V 表示高电平‘1’状态或者无数据传送,以0 V表示低电平‘0’状态。因此为了使TMS320VC5410 的多通道缓冲串口与RS232 接口进行通信,需要电平转换电路,本文使用了MAXIM 公司MAX232 电平转换器,如图3 所示。




  通过TMS320VC5410 发送读卡命令和所要读取内容的地址(N=0,…,255)后,在CLK 信号的作用下卡片将主存储器中的数据按比特移至I/O 引脚发送至DSP 内存中。读取数据完成后,额外的一个时钟信号将使I/O 引脚变为高阻状态,卡片退出输出模式等待接收新的指令,也可以用Break条件(在CLK 为低时,把RST 信号由低电平变为高电平状态)结束此次操作。
  图5 显示了TMS320VC5410 对SLE5542 卡片读卡程序的调试结果,为了验证读卡功能的实现,系统读取了卡片中的所有字节的内容。其中前8 个字节为‘A2131091FFFF8115’ 为IC 卡的厂商标识; 之后地址8~20的13 个字节全为‘FF’是写保护区;地址21~26 是6 个字节的用户代码‘D27600000400’, 之后又是5 个字节的写保护区;从地址32~255 之间的数据是用户数据区,可以在这些地址里存放加密系统的密钥和其他的用户信息。




  4 结论
  本文采用SLE5542 型IC 卡存储密钥,TMS320VC5410中的McBSP 引脚与卡片触点连接并实现对卡片的应答复位和内容的读取,同时通过RS232 串口与个人PC 机实时交换数据,接收PC 机发送的明文并对其DES 加密后反馈输出。
  由于McBSP 的工作机制是同步串口, 把其当作通用I/O 口和异步串口使用时必须注意内部寄存器的设置和输入输出方向的设定。经软硬件调试,实验结果表明该方案完全可以满足大数据量的加密,合理使用了硬件资源,可以进一步升级扩展作为数据采集保密系统的加密模块。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-24 14:04 , 耗时 0.088473 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表