基于TMS320VC5410的DES加密系统设计

发布者:数字探险家最新更新时间:2010-12-15 来源: 桂林电子科技大学 关键字:数据加密标准(DES)  TMS320VC5410  加密  SLE5542 手机看文章 扫描二维码
随时随地手机看文章

  数据加密是为了保证所传输信息的安全而在特定参数(称为密钥)的控制下按照某种规律对原始数据进行的人为扰乱,将其转换成秘密形式的信息。数据加密标准 (Data Encrvption Standard,DES)是第一个广泛应用于商用数据保密的、公开的密码算法,在其公布和正式实施后,成为许多国家政府、银行和标准组织的信息安全处理标准。然而DES实现信息保密的前提是对于密钥的有效管理,这就要求基于DES的加密系统必须提供可靠、方便的密钥保存设备。同时在近20年,DSP处理器的性能得到很大改善,软件和开发工具也得到相应发展,价格大幅下降,应用也越来越广泛。本文选用TI公司TMS320VC54x系列DSP,采用软件方式实现DES加密算法,同时以集成电路卡(Integrated Circuit Card)作为密钥存储设备。为了解决DSP的通用IO口较少的问题,使DSP片上的一些特殊功能引脚工作在通用输入输出引脚状态显得尤为重要。本文结合 DSP运算速度快、片上资源多的特点,研究并实现基于DSP的DES加密系统及其与IC卡以及终端PC机之间的通信协议。

1 DES算法简介

  DES作为美国国家标准的加密算法,既可用于加密又可用于解密。其加密过程主要分为3个部分,如图1所示。首先把输入的数据比特流以每64 bit为一组进行分组得到明文x,之后是一个初始置换,IP,记为Xo=IP(x)=LoRo(Lo代表左边32 bit,Ro代表右边32 bit);然后以每一组作为加密单元,在16个子密钥(每个子密钥的长度为48 bit)的控制下根据下列规则计算LiRi(1≤i≤16),进行16轮的非线性变换:

  每轮中都有换位和代替运算;最后再经过一个逆初始置换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模块和JT-AG接口模块以外,还主要包括以下2部分:1)TMS320VC541O与SLE5542型IC卡片的接口模块,主要用于系统工作时IC卡向DSP传送用于数据加密的密钥和卡片存储的其他一些用户信息;2)DSP与PC主机的通信接口模块,它是DSP与个人电脑的通信接口,主要用于DSP接收明文数据以及将加密后的数据反馈至PC机。

  2.1 McBSP简介

  TMS320VC5410片内包含了3个全双工的多通道缓冲串口(Multichannel Buffered Serial Ports,McBSP),分别为McBSP0、McBSPI和McB-SP2。它们可以提供全双工通信、连续数据流的双缓冲数据寄存器、接收和发送独立的帧和时钟,可以直接和系统中的其他器件接口连接并可以配置为通用IO口。McBSP与外设的数据交换,通过DX引脚发送,RX引脚接收。通信的时钟与帧信号由CLKX、CLKR、FSX及FSR引脚来控制。T-MS320VC5410对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所示。它是一种按字节操作的多存储器逻辑加密卡,应答复位符合ISO78 16-3标准。该型卡片内置了3个存储器:32×1 bit的PROM型保护存储器、256×1 bit的EEPROM型主存储器以及32x1 bit的EEPROM型加密存储器。主存储器可重复擦除使用,按字节操作,并分为保护数据区和应用数据区,读出均不受限制,但应用数据区的擦除和写入则受加密存储器中的密码及密码计数器保护。

  [page]

  为了提高硬件的利用率和解决DSP片上通用IO口较少的问题,本系统设计将MeBSPI配置为通过IO口实现其与IC卡片通信的模块。由于McB-SP引脚中的DX只能配置用作通用输出脚,DR只能配置用作通用输入脚,不方便程序编写对引脚状态控制。所以在DSP对卡片读写的硬件电路中选择了MeBSP1 的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位均设置为‘O’,使串口复位,串口操作禁止。然后设置引脚控制寄存器PCR中的XIOEN和RIOEN为‘1’,使串口的接收和发送引脚均工作在通用I/0模式;另外将FSRM、CLKXM和CLKRM位均设置为‘1’,使FSR1、CLKX和CLXR引脚作为通用输出管脚,将要输出的值分别存储在PCR中的FSRP位、CLKXP和CLKRP;对于FSXM位的设置,则需要根据通信时的具体情况而定。

  2.3 DSP与PC通信模块设计

  系统设计中选择了McBSP0作为TMS320VC5410从外界PC机接收明文数据和输出密文的通道,直接通过PC机的RS232异步串口与TMS320VC54 10之间进行加密解密数据的传送。这种方法通过软件实现PC机与DSP之间的串行双工通信,它的硬件设计简单且不会过多占用CPU的时间,可以实现数据的高速传输。

  RS232异步串口采用负逻辑传送数据,以10 V电压状态表示数据‘O’,-10 V电压状态表示数据‘1’;而DSP的IO口则以3.3 V表示高电平‘1’状态或者无数据传送,以0 V表示低电平‘O’状态。因此为了使TMS320VC54lO的多通道缓冲串口与RS232接口进行通信,需要电平转换电路,本文使用了MAXIM公司MAX232电平转换器,如图3所示。

3 系统软件设计

  选用TI公司CCS(Code Composer Studio)作为该加密系统软件设计时的开发和调试工具,使用C语言和汇编混合编程的模式完成软件设计。由于C语言编程具有便于阅读、维护、交流和可移植性好的特点,因此采用C语言完成整个程序的主框架设计,在对时间要求比较苛刻的地方或对代码运行效率有较大影响的场合采用汇编指令编写。

  3.1 DSP读IC卡软件实现

  3.1.1 McBSP1串口配置

  当把卡片插入卡座时,状态开关选通,并且电路板上提示灯亮表示插卡到位,DSP内存中的读卡状态标志位设置为‘1’。TMS320VC5410开始初始化 McBSP1,使其工作在通用IO口状态,采用子地址寻址的方式对SPCR11(映射地址为0049h,子地址为00h)、SPCR12(子地址为 01h)和PCR1(子地址为0Eh)等寄存器进行配置。配置代码如下:

  SPCR11=0x0000;

  SPCR12=0x0000;

  PCR1=0x3F00;

  此时FSR1、FSX1、CLKR1和CLKX1均用作通用输出管脚。把PCR中的FSRP位设置为‘O’,PCR1&=0xFFFB;则卡片Voc触点电平为低,卡片处于掉电状态;通过语句PCR1l=0x0004把FSR1引脚置高电平给卡片上电。

  由于DSP的FSX1引脚与卡片的数据I/O触点相连,要求FSX1引脚具有双向传输的功能,但该引脚在同一时刻只能处于输入或输出一种状态,为此定义了以下两个宏实现引脚在输入与输出状态的改变。

  3.1.2 复位与复位应答

  DSP检测到读卡状态位为‘1’时,给卡片上电,CLK(和RST保留于状态L,开始运行读卡程序将卡中存储的密钥读取至内存中。首先按照 ISO7816-3标准对SLE5542卡片进行应答复位,复位可以发生在操作过程的任意时刻。之后,RST线被置于H状态,并维持至少15μs。在 RST状态由高电平到低电平的转换期间CLK提供一个时钟脉冲,卡片内的地址计数器(address counter)清零,I/O引脚输出有效数据的第1位,这一数据可视为复位应答;在此后连续31个时钟脉冲的作用下,主存储器中的前4个地址中的32位标头数据被读出;下一个时钟脉冲使I/O引脚变为高阻状态;此时卡片复位与复位应答完成。

  3.1.3 DSP读卡主程序设计

  图4为DSP读IC卡主程序设计。卡片复位应答之后,则处于等待指令输入的状态。SLE5542每个指令均由控制字节、地址字节和数据字节组成,传输时从控制字节的最低位开始。控制字节传送完毕之后,依次传送地址字节和数据字节,均为低位在前。每个指令的传输都开始于一个Start条件 (在时钟信号为高电平状态,通过DSP发送卡片IO口一个下降沿),结束于Stop条件(在时钟信号为高电平状态,通过DSP发送卡片IO口一个上升沿)。根据指令作用的不同。SLE5542接收完成后可能处于数据输出模式(DSP读卡)或者内部处理模式(DSP写卡)。

  通过TMS320VC5410发送读卡命令和所要读取内容的地址(N=0,…,255)后,在CLK信号的作用下卡片将主存储器中的数据按比特移至I/O 引脚发送至DSP内存中。读取数据完成后,额外的一个时钟信号将使I/O引脚变为高阻状态,卡片退出输出模式等待接收新的指令,也可以用Break条件 (在CLK为低时,把RST信号由低电平变为高电平状态)结束此次操作。

  [page]

  图5显示了TMS320VC5410对SLE5542卡片读卡程序的调试结果,为了验证读卡功能的实现,系统读取了卡片中的所有字节的内容。其中前8个字节为‘A2131091FFFF8115’为IC卡的厂商标识;之后地址8~20的13个字节全为‘FF’是写保护区;地址21~26是6个字节的用户代码‘D27600000400’,之后又是5个字节的写保护区;从地址32~255之间的数据是用户数据区,可以在这些地址里存放加密系统的密钥和其他的用户信息。

  3.2 PC通信软件设计

  3.2.1 MeBSP0的初始化配置

  首先通过SPCR1O=0x0000,SPCR20=Ox0000把RRST与XRST位设置为‘O’,使串口复位。设置PCR0=0x0BOC;采样率由DSP内部产生,接收与发送帧同步信号为低有效,时钟上升沿发送数据、下降沿接收数据。其次通过接收控制寄存器RCR1O(子地址为02h)和 RCR20(子地址为03h)来对DSP串口接收模式进行设置,令RCR10=0x0940;RCR20=0x0004;接收帧长度10字、每字16 bit,忽略除第一个帧同步后的其他帧同步信号。通过传输控制寄存器XCR10(子地址为04h)和XCR20(子地址为05h)来对DSP串口发送模式进行设置,令XCR10=0x0940;XCP20=0x0004;使数据的发送与接收模式一致。另外,采样率发生器控制寄存器SRGR10(子地址为 06h)和SRGR20(子地址为07h)控制采用率发生器的工作模式。本系统中选择PC机的串口工作波特率为38 400,采样率发生器计算公式为:

  CLKGDV=CPU工作频率/(16x波特率)-1

  由于TMS320VC5410工作频率为100 MHz,因此CLKGDV=100 000 000/(16x38 400)-1=161,设置SRGR1=0x00A1,SRGR2=0x2000;最后通过SPCR1=0x0001,SRGR2=0x2000;对串口使能,处于可操作状态,至此完成了McBSPO的初始化配置。

  3.2.2 数据格式的统一

  DSP通过McBSP0接收外界PC机数据采用中断方式。这里为了实现TMS320VC5410同步串口与PC机异步串口通信时数据格式的统一,把 McBSP的1个16位字等效为PC机串口传送的1个8N1模式数据(1个起始位+8个数据位+1个停止位)的1位。PC机串口每发送1个位的数据,DSP采样16次暂存数据接收寄存器DRR10(地址为21h)中。例如PC机通过RS232串口传送数据为‘1’,则DRR10经过16次采用后接收一个字的数据为‘FFFFh’,同理若前者后‘0’,则后者为‘0000h’。之后触发McBSPO串口接收中断,DSP执行中断服务程序将DRR1O 中的有效数据(除去起始位和停止位)取走至内存中,并对计数器加1。当接收到一个完整的帧后,DSP置串口数据解码标志位为‘1’,DSP开始运行解码程序,将‘FFFFh’和‘0000h’分别等效为一个比特位‘1’和‘0’,从而恢复出原始的数据帧。

  当DSP对接收到的数据完成加密之后需要反馈输出,TMS320VC5410串口数据向PC机发送的过程与数据接收的过程正好相反。每帧数据都需要进行串口编码之后通过数据发送寄存器DXR1O(地址为23h)发出。即把8位有效数据中的‘0’编码为‘0000h’,‘1’编码为‘FFFFh’,按照从低位到高位的顺序重新排列编码后的数据,并在帧首和帧尾分别添加起始位‘0000h’和结束位‘FFFFh’,将每组10个数据作为一帧信号发出。

  图6显示了本文设计的加密系统的实验结果。通过PC机和RS-232串口发送字符‘11112222’的十六进制形式为‘3131313132323232’共64 bit,TMS320VC5410接收到64 bit明文数据后,通过读取IC卡中的64 bit密钥‘310000000000031’并对明文进行DES加密后,输出密文的十六进制形式为‘96B466D634DE9A2D’。结果显示系统工作稳定可靠,符合设计要求。

4 结论

  本文采用SLE5542型IC卡存储密钥,TMS320VC5410中的McBSP引脚与卡片触点连接并实现对卡片的应答复位和内容的读取,同时通过RS2 32串口与个人PC机实时交换数据,接收PC机发送的明文并对其DES加密后反馈输出。由于McBSP的工作机制是同步串口,把其当作通用I/O口和异步串口使用时必须注意内部寄存器的设置和输入输出方向的设定。经软硬件调试,实验结果表明该方案完全可以满足大数据量的加密,合理使用了硬件资源,可以进一步升级扩展作为数据采集保密系统的加密模块。

关键字:数据加密标准(DES)  TMS320VC5410  加密  SLE5542 引用地址:基于TMS320VC5410的DES加密系统设计

上一篇:将同步信号添加到标清视频信号的通道设计方案
下一篇:智能摄像机监控系统分析算法及核心技术

推荐阅读最新更新时间:2024-03-16 10:55

STM8L固件烧录和加密流程
轩微科技STM8编程器控制平台V8.0链接:https://pan.baidu.com/s/1H6FREYRmzefAiO95ErhKWA 提取码:yhue 轩微科技STM8编程器说明书链接:https://pan.baidu.com/s/1V1iQSBZeQ9VyrD9BkXFePQ 提取码:wtdd 1、将烧录器轩微科技stm8编程器按照指定线序(SWD)连接到目标板,USB口插入电脑。 2、如图所示,打开烧录软件轩微科技STM8编程器控制平台V8.0,软件下方绿色框提示编程器与控制平台通信正常,表示烧录器跟电脑连接成功。 3、确认烧录的选项是否正确,具体选项按照图片示例为准。勾选写并校验配置字*可以在自动批
[单片机]
STM8L固件烧录和<font color='red'>加密</font>流程
意法半导体(ST)与ClevX扩大合作,推出面向安全设备的高安全性加密技术平台
横跨多重电子应用领域、全球领先的半导体供应商意法半导体和移动存储和移动设备知识产权技术创新开发企业ClevX,近日发布了符合FIPS 140-2 Level 3标准的面向安全应用的加密技术平台参考设计,这个基于STM32微控制器的加密平台采用商用芯片而非军用芯片,帮助设计企业和设备厂商研发符合FIPS标准的安全解决方案,适用于需要认证密码函数的安全应用。下面就随半导体小编一起来了解一下相关内容吧。 横跨多重电子应用领域、全球领先的半导体供应商 意法半导体 和移动存储和移动设备知识产权技术创新开发企业ClevX,近日发布了符合FIPS 140-2 Level 3标准的面向安全应用的加密技术平台参考设计,这个基于 STM32 微控制
[半导体设计/制造]
国内公司收购希捷传闻再度引发中国威胁论
  北京时间8月26日消息,据国外媒体报道,一家中国科技公司近日表达了收购一家美国计算机硬盘厂商的兴趣,这一消息可能在一些美国官员中引发忧虑,因为他们担心向中国转让高科技可能威胁国家安全。   希捷首席执行官威廉·沃特金斯(William Watkins)在接受国外媒体采访时披露了这一消息。三年前,联想收购了IBM PC业务,从而一举成为全球第三大PC厂商。不过,这一交易在美国引发了经济竞争力和国家安全方面的激烈争论,当时曾经遭到一些美国官员的反对。沃特金斯并没有透露这家中国公司的名称,只是表示这一潜在收购将给一些美国政府部门敲响警钟。希捷是美国两大硬盘厂商之一,已于近日开始销售带有硬件加密功能的硬盘。   一些美国政府官员表示
[焦点新闻]
SmartRoom无线技术低辐射和加密升级护航智能家居
    智能家居火了,但智能家居还不成熟。智能家居受到热烈追捧,却仍然掩盖不了“双重不安全性”问题。一方面通信技术所组成的网络接入互联网后可能存在安全隐患,另一方面无线通信技术对人体健康会造成一定的危害。   对于第一种安全问题,任何能接入互联网的设备都会面临被劫持的风险,智能家居也不例外。实际上,从贝尔金儿童监视器被黑客入侵变成**,到惠普研究发现十大热门智能家居设备存在250个不同的安全漏洞,再到Nest在去年世界黑帽子安全大会上惨遭当众破解,智能家居存在安全隐患已经不再算是什么秘密。   第二种问题容易被我们忽略,但它对人体可能存在的健康影响也不能放任自流。不久前,《显微和超微结构杂志》(Journal of Micros
[安防电子]
基于TMS320VC5410和TLV1571的数据采集系统
  在应用DSP 进行数字信号处理时,通常都要用采样电路对模拟信号进行采样,然后进行A/D 转换器转换成数字信号再进行数据处理。这里给出一种由TLV1571 与TMS320VC5410 组成的信号采集系统。    1 TLV1571 简介:   在DSP 的外围电路中,A/D 转换器比较重要。基于不同的应用,可选择不同性能指标和价位的芯片。一般的A/D 转换器的选择主要考虑:转换精度、转换时间、转换器的价格。   这里选择了TI 公司专门为DSP 配套的一种10 位的并行A/D 转换器TLV1571, 该器件给定的CLK 频率达到的等效最大采样频率为(1/16) fCLK。    1.1 TLV1571 的内部结构及引脚定
[嵌入式]
WPA2加密协议被攻破!路由器等一大波设备遭殃
        对于路由器来说,这绝对是一个悲催的消息,因为有黑客已经发现了能够轻松干掉WPA或WPA2加密Wi-Fi网络的方法。   据外媒TheNextWeb报道称,攻击者在联网设备和无线接入点之间读取到无线通信协议, 甚至还能将其修改,把恶意软件嵌入到网站中,macOS、Windows、iOS、Android和Linux都不能躲避这个漏洞。   其实出现这个问题,也没有让我们太意外,因为WPA2加密协议已经服役差不多13年,其被破解对于普通用户来说是难受的,因为攻击者不需要破解Wi-Fi密码,就可以轻松来窃取用户的信用卡卡号、密码、聊天信息、照片、电子邮件以及在线通讯工具内容。   研究人员还强调,Android 6.
[安防电子]
基于状态机和流水线技术的3DES加密算法及其FPGA设计
摘要:介绍了3DES加密算法的原理并详尽描述了该算法的FPGA设计实现。采用了状态机和流水线技术,使得在面积和速度上达到最佳优化;添加了输入和输出接口的设计以增强该算法应用的灵活性。各模块均用硬件描述语言实现,最终下载到FPGA芯片Stratix EP1S25F780C5中。 关键词:状态机 流水线 3DFS FPGA 随着网络的快速发展,信息安全越来越引起人们的关注。加密技术作为信息安全的利器,正发挥着重大的作用。通过在硬件设备(如由器、交换机等)中添加解密功能,可使存储和传输的数据具有较高的安全性。传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,其运算速度较硬件加密要慢,密钥以明文的方式存储在程序
[半导体设计/制造]
XXTEA加密算法的原理及其C语言实现
在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广泛的应用。 TEA 算法是由剑桥 大学计算机实验室的 David Wheeler 和 Roger Needham 于 1994 年发明, TEA 是 Tiny Encryption Algorithm 的缩写, 以加密解密速度快,实现简单著称。 TEA 算法每一次可以操作 64bit(8byte) ,采用 128bit(16byte) 作为 key ,算法采用迭代的形式,推荐的迭代轮数是 64 轮,最少 3
[单片机]
XXTEA<font color='red'>加密</font>算法的原理及其C语言实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新安防电子文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved