基于DSP的数据加密技术.docx

上传人:b****5 文档编号:12685444 上传时间:2023-04-21 格式:DOCX 页数:16 大小:174.05KB
下载 相关 举报
基于DSP的数据加密技术.docx_第1页
第1页 / 共16页
基于DSP的数据加密技术.docx_第2页
第2页 / 共16页
基于DSP的数据加密技术.docx_第3页
第3页 / 共16页
基于DSP的数据加密技术.docx_第4页
第4页 / 共16页
基于DSP的数据加密技术.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于DSP的数据加密技术.docx

《基于DSP的数据加密技术.docx》由会员分享,可在线阅读,更多相关《基于DSP的数据加密技术.docx(16页珍藏版)》请在冰豆网上搜索。

基于DSP的数据加密技术.docx

基于DSP的数据加密技术

基于DSP的数据加密技术综述

目录

摘要:

3

Abstract:

3

一、引言4

二、软件算法5

2.1、RSA加密算法描述5

2.2、Montgomery模乘算法6

2.3、实现RSA快速加密6

2.3.1、乘幂运算的快速实现6

2.4、Montgomery模乘算法改进的RSA算法实现7

2.4.1、改进的模乘算法7

2.4.2、2个CSA加法器的Montgomery模乘算法7

2.4.3、实现RSA加密系统的结构图9

三、硬件加密10

3.1、长整数模运算的快速实现10

3.2、TMS320C54X芯片的特点,及编程过程中应注意的地方11

四、参考文献12

五、课程总结12

 

摘要:

RSA是最早提出的公钥密码体制,其原理简单,安全性好,但由于其密钥较长才能保证一定的安全性,因而计算量大,如果用软件加密其速度太慢,用硬件实现可以大大提高RSA的速度。

与此同时应用Montgomery模乘算法来提高RSA的速度。

在Montgomery模乘算法改进的基础上,提出了一种实现Montgomery模乘算法的结构,该结构只需使用一个CSA(carrysaveadder)加法器.与目前使用两个CSA加法器的模乘算法相比,所提出的算法加快了RSA加密处理器的实现,并提高了整个加密系统的时间效率。

DSP芯片系列提供了一种专用的乘法器,其完成一次乘法的时间只要一个周期,这使实现RSA的速度加快,怎样实现呢?

那么就介绍一种适合DSPTMS320C54X芯片,用汇编语言实现的一种快速的RSA,并实现了良好的加速算法。

Abstract:

RSAistheearliestpublickeyalgorithm.Itstheoryisverysimpleanditssecurityisveryhigh,butitmustusealongkeytoassureitssecurity,soitscomputationisverylarge.Usinghardwaretoimplementdataencryptionismorefasterthanusingsofter.AndusethemodifiedMontgomerymodularmultiplication,BasedonthemodifiedMontgomerymodularmultiplicationthispaperproposedanewarchitec2tureofusingCSA(carrysaveadder)fortheimplementationofMontgomerymodularmultiplication.ComparedwiththepresentalgorithmusingtwoCSAmodularmultiplication,theproposedalgorithmonlyusesoneCSA,soitspeedsuptheimplamentationofRSAcryptoprocesser,andalsoimprovesthetime.efficiency.Thereisaparticularmultiplier,whichcancomputeamultiplicationatacycle,thismeansitcanmakeRSAfaster.Howcanitbedone?

thenakindofthedesignoffastRSAimplementationbaseonDSPTMS320C54Xchipset,usingassemblerlanguageisintroduced.Asaresult,itgetsahighspeed.

Keywords:

RSA;DSP;FastImplementation;ModularArithmeticMontgomerymodularmultiplicationalgorithm;CSA

一、引言

 随着数字通信和电子商务,网络技术的高速发展和普及,网络信息安全成为当今一个重要话题.对数据安全的需求日益迫切,如何保证网络上信息安全成为一项重要的研究课题,而数据加密是保护信息的一种重要方法为了保证信息安全,公开密钥体制得到广泛的认可,而RSA是其中一个重要的公开加密系统.由于在RSA加密算法中,主要是模指数运算,而模指数运算重复使用了模乘算法,所以模乘算法是实现RSA加密系统的关键所在,如何提高模乘算法的效率,影响到整个RSA加密系统的工作效率.而Montgomery模乘算法在计算指数运算上效率较高,而且易于实现.在RSA加密处理器的硬件实现上,有两种比较好的加密结构:

一种是基于硬件资源合理利用上的L2R(lefttoright)二进位方法;一种是在实现速度较快基础上,所需硬件资源较大的R2L(righttoleft)二进位方法[1].本文在Montgomery模乘算法优化的基础上,使用L2R二进位方法,并对Mont2gomery模乘使用CSA加法器[2]改进前后,RSA加密处理器在处理时间上作相应的分析和比较.但单纯由软件来加密虽然升级方便,但安全性和速度都与经过特殊设计的硬件加密无法相比,因此采用专用的芯片的PC安全卡,即利用专用的汇编语言实现算法并装载到卡上,再在专用的芯片上运行是一种性能高且成本低的解决方案。

TI公司推出的TMS320C54X系列的DSP具有性能适中,价格低廉和产品成熟等特点,并且其乘法指令执行快,并行性高,较适合于加密算法,因而采用TMS320C54XDSP作为PC安全卡的主CPU

二、软件算法

2.1、RSA加密算法描述

RSA公钥算法是由MIT的Rivest、Shamir和Adleman在1978年提出来的。

RSA方案是唯一被广泛接受并实现的通用公开密钥密码算法,目前已成为公钥密码的国际标准。

该算法的数学基础是初等数论中的欧拉(Euler)定理,其安全性建立在大整数因子分解的困难性之上。

RSA作为公钥密码体制,利用了单向陷门函数的原理,如图1所示。

(1)

RSA算法归纳如下:

(1)选择2个大素数p、q,为了保证安全,通常要求每个都

图1RSA利用单向陷门函数原理大于10100(即超过100位的十进制);

(2)计算n=p·q和φ(n)=(p-1)·(q-1);

(3)选择一个与φ(n)互素的数,令其为e;

(4)找到1个d,使其满足

d=e-1modφ(n);

(5)选好这些参数后,将明文划分成块,使得每个明文报文块长度满足M<n。

加密M时,计算:

C=Memodn

(1)

解密时计算:

M=Cdmodn

(2)

由于模运算的对称性,可以证明,在确定的范围内,加密和解密函数是互逆的。

为实现加密,需要公开{e,n},为实现解密需要{d,n}。

2.2、Montgomery模乘算法

RSA加密系统主要是进行模指数运算.假设N是2个大的素数p和q的乘积,而公开密钥e可以根据e=d-1mod(p-1)(q-1)通过欧几里得乘法

逆元算法获得.加密时:

①明文M,公开密钥(e,N)(0

解密时:

①私有密钥(d,N);②明文M=CdmodN

2.3、实现RSA快速加密

由RSA的基本原理可以看出,要快速实现RSA关键是大数的模幂运算,下面主要讨论怎样实现快速的长整数的模运算和乘幂运算

2.3.1、乘幂运算的快速实现

1M—ARY算法

在这里我们采用了一种适应的M—ARY算法,首先我们介绍一下M—ARY算法将E写为2进制表示法,设E为k位的,E=(Ek-1Ek-2………E0),将r位作为一组,令m=2r,算法如下:

1.求出M2,M3,。

Mm-1modN

2.令C:

=1

3.对于i=t-1,t-2,………..1,0重复计算:

(a)C:

=CmmodN(实际的运算是通过r次C:

=C2modN次运算得到的)

(b)若Ei≠0则C:

=C×MEimodN

所得C即为所求

由上面的算法可看出平均计算量为:

(1)预算M2。

Mm-1:

m-2=2r-2

(2)平方的次数:

k

(3)3(b)的执行乘的次数:

(2r-1)×k/(2r×r)+2r-2

我们可以看出这三部分构成了该算法的主要运算量,只要能减少任一部分,则计算乘幂的时间还可以减少,注意到平方的计算次数只与E的位数k有关,没法再减少其计算量,下面引入的适应性M—ARY算法即固定性非零窗口滑动窗口算法(CLNW)就是在M—ARY基础上的改进算法,其目的是减少其他两个部分的计算量

2.4、Montgomery模乘算法改进的RSA算法实现

2.4.1、改进的模乘算法

在Montgomery算法基础上,RSA整个加密系统包括匹配、模指数和再匹配三部分。

见下图

(2)

加密系统

2.4.2、2个CSA加法器的Montgomery模乘算法

1)目前使用2个CSA加法器的Mountgomery模乘算法:

算法1:

输入:

A,B,N(modulus)

输出:

P=(AB2-n)modN

n:

numberofbitsinA

Ai:

ithbitofA

S0:

thelowestbitofS

   步骤1:

P=0;S=0;C=0;

   步骤2:

fori=0ton-1do

2a:

(S,C)=S+C+AiB

2b:

(S,C)=S+C+S0N

2c:

S=Sö2;C=Cö2

   步骤3:

P=S+C

   步骤4:

if(P>N)P=P-N

   步骤5:

return(P)

结果为REDC(A,B)=AB2-(n+2)modN.

2)一个CSA的Montgomery模乘算法

由于目前采用的改进Montgomery模乘算法实现时,使用了2个CSA加法器,虽然每个加法可以在一个时钟周期完成,但是随着加密数据长度n的增加,所需加法单元也会越来越大.例如n=1024bit时,也需要2048个加法单元,因此,所使用的硬件资源仍然很大.为了节省硬件资源,同时加快模乘

算法,本文对模乘算法做了相应的改进

算法2

输入:

A,B,N(modulus)

输出:

P=(AB2-n)modN

n:

mumberofbitsinA

Ai:

ithbitofA

S0:

thelowestbitofS

C0:

thelowestbitofC

B0:

thelowestbitofB

R:

precomputedvalueof(B+N)

 步骤1:

P=0;S=0;C=0

 步骤2:

fori=0ton-1do

2a:

if(S0=C0)andnotAithen:

L=0

if(S0≠C0)andnotAithen:

L=N

ifnot(S0xorC0xorB0)and

Aithen:

L=B

if(S0xorC0xorB0)andAi

then:

L=R

2b:

(S,C)=S+C+L

2c:

S=Sö2;C=Cö2

步骤3:

P=S+C

步骤4:

if(P>N)P=P-N

步骤5:

return(P)

结果为REDC(A,B)=AB2-(n+2)modN.

算法一图(3)算法二

2.4.3、实现RSA加密系统的结构图

由于CPA加法器是一种进位传播加法器,如果进行高比特的加法,不仅需要较多的硬件资源,而且会有很大的时延,因此不利于系统时钟频率的提高.为了保证整个加法能够在一个时钟周期完成,提高Montgomery模乘算法的时间和工作效率,需使用CSA加法器替代模乘算法中的CPA加法器。

在CPA加法中,执行1024bit的加法需要32个时钟,为了适应该加法结构,输入的1024bit寄

存器包括32bit的寄存器.使用32bit的CPA加法器和移位寄存器,减少了硬件资源.同时,移位寄存器也使32bitIöO接口成为可能.基于L2R的实现Montgomery算法的RSA处理器的结构框架图如图4所示.

图(4)

三、硬件加密

3.1、长整数模运算的快速实现

通常的长整数模运算都是用加减法来完成的,因为PC机的加减法指令的执行速度比乘除法要快得多,利用加减法可以使指令的执行速度大幅度的提高,但对于C54X则不同,C54X芯片中的17bit*17bit专用乘法器使得其乘法指令的执行只需一个时钟周期,与加减指令的速度完全相同,这样就要考虑更多地用乘法来完成模运算

假设要做运算R=TmodN(3.1.1)

其中N为k位的长整数,T为2k位的长整数,设字长为m,则N共有n=k/m个字,T有2n个字,同时记X=2m

将T写为表达式:

T=T1×2k+T0(3.1.2)

并将T1表示为:

T1=tn-1Xn-1+tn-2Xn-2+……….+t0(3.1.3)

将式(3.1.2)和(3.1.3)代入式(3.1.1)即得

R=(tn-1×(X2n-1modN)+tn-2×(X2n-2modN)+…….+t0×(XnmodN)+T0)modN(3.1.4)

从(3.1.4)式可看出,可以预求n个Xn+ImodN的值,分别记为:

r0=XnmodNr1=Xn+1modN…………rn-1=X2n-1modN

有R1=tn-1×rn-1+tn-2×rn-2+……..+t0×r0+T0(3.1.5)

执行完式(3.1.5)之后,R1的k比特以上部分(记为R11)的位数不会超过

m+㏒n,对于C54X,m=16,只要选择的k<16*28=4096,R11的位数就不会超过24,这样,可以选择X=28重复式(3.1.5)的操作,这时的预表中只要如下三项即可:

r10=2kmodNr11=2k+8modNr12=2k+16modN

记R11=(r12×X2+r11×X+r10)(3.1.6)

则可执行操作:

R2=r12×r12+r11×r11+r10×r10(3.1.7)

执行完(3.1.7)后,R2的k比特位以上的部分(记为R21,低k比特的部分记为R20)的最大长度为10比特,这是对乘/累加的利用已达到最大限度,接下来必须进行加减法的操作,构造预表如下:

r20=2kmodNr21=2k+1modN……..r29=2k+9modN

这时可以执行如下操作:

forI=1to10do

ifR2i的第i位是1thenbegin

R20=R20+r2i

If(R20>N)thenR20=R20-N

End

这样得到的结果R20就是最后的结果R

由上面的算法可见,整个模运算是由三步组成的,其中前两步是将加减法转换为乘/累加来做的,第三步的加法循环只有10次,这充分利用了C54X芯片的乘法优势,使模运算的速度有了很大的提高。

完成一次模运算的时间为用减法完成模运算时间的38.5℅.

3.2、TMS320C54X芯片的特点,及编程过程中应注意的地方

(1)芯片共有3条数据总线,1条程序总线,4条相应的地址总线,多条数据总线可同时读取多个数据,使得C54X具有功能强大的指令集。

很多指令的效率很高。

(2)8个辅助寄存器使得程序编制更灵活。

(3)有2个40-bit累加器,1个17-bit×17-bit乘法器,可很方便的进行乘/累加运算,另外单指令周期的乘法指令使模运幂运算的速度大幅度提高。

(4)320C54X芯片采用了六级流水线机制,但没有解决流水线相关的问题,因此在编程时必须注意指令的连接关系,必要时要加上空操作,合理调配指令顺序,尽量减少指令的相关性,可大大提高程序的运行速度。

(5)许多指令都分为有符号数和无符号数两种,应根据所用数的类型选用指令。

(6)TMS32054X芯片的地址形成方式比较特殊,16位地址的高9位由DP给出,低7位由指令给出,这样使得直接寻址的指令的执行速度比较快,但必须先将DP设置为正确的值。

因此在程序调试过程中,数据的存储位置尚未完全确定,最好避免利用DP寻址的指令,防止由于存储位置的变化引起程序运行错误。

 

四、参考文献

[1]卢开澄.计算机密码学[M].北京:

清华大学出版社,1998.81-96

[2]周建江,戴明桢,等.TMS320C54XDSP结构、原理及应用[M].北京:

北京航空航天大学出版社,2001.1-60

[3]阮飞.当前我国信息安全领域面临的重大问题.信息安全与通信保密,2003(12)

[4]佟晓筠,王翥,郭长勇,等.基于RSA等算法软件加密技术的研究

与实现.微处理机,2003(6):

[5]何彩燕,吴红.公钥制RSA算法应用中要注意的几个问题.现代计算机,

2004,178(5):

[6]尹勇,欧光军,关荣锋.DSP集成开发环境CCS开发指南.北京:

京航空航天大学出版社,2003

五、课程总结

1、第一章离散时间信号与系统

数字信号是由模拟信号经过采样得到离散时间信号,在经过量化和编码最终得到的。

在采样的过程中,他的采样频率必须高于两倍信号的最高频率,则整个连续信号就可以完全用它的采样值来代表,而不会丢掉任何信息。

任何一个时间离散信号都可以用单位脉冲序列信号及其移位的线性组合来描述他。

单位阶跃信号和他的移位的线性组合可以用来描述一个离散时间的持续时间。

判断一个系统是否为线性系统:

Linearsystem:

齐次性与叠加性

即y1(n)=T[x1(n)],y2(n)=T[x2(n)]

y(n)=T[ax1(n)+bx2(n)]=ay1(n)+by2(n)

*加权信号和的响应=响应的加权和。

Time-invariant:

时不变特性

即y(n-n0)=T[x(n-n0)]

所有

存在一个最小的正整数

满足:

则称序列

是周期序列,周期为

两个序列中只要有一个是无限长序列,则卷积之后是无限长序列,卷积是线性运算,长序列可以分成短序列再进行卷积,但必须看清起点在哪里。

Z变换是分析离散信号与系统的一种有力的数学工具,他类似于拉普拉斯变换之对连续信号与系统。

在离散时间系统分析中,从对系统数学模型的求解方法来讲,基本可以分为时域方法和变换域方法两类,时域法是直接分析时间变量的函数研究离散时间系统的时域特性。

第二章离散傅里叶变换

离散傅里叶变换建立了有限长序列与离散频谱之间的联系,他在理论上具有重大意义。

DFT隐含有周期性,周期为N,

有限N长序列x(n)的N点离散傅里叶变换(DFT)X(k)也可以定义为x(n)的周期延拓序列X((n))N的离散傅里叶级数(DFS)的主值序列。

周期序列的主周期序列指把周期序列截取主周期0——N-1得到的有限长序列。

循环卷积的计算方法,循环卷积与线性卷积的关系,用DFT计算线性卷积的方法。

设x1(n)(0≤n≤M-1),x2(n)(0≤n≤N-1)

循环卷积:

L取M、N中较长的一个(设M>N,则L=M)。

较短的一个需要补0至L(两个序列的长度要求相等)。

循环卷积可以用DFT(FFT)实现;

用循环卷积实现线性卷积:

L≥M+N-1

若不满足这个条件,则只在N-1≤n≤M-1范围内两者相等。

DFS

DFT

线性

线性

序列移位

循环移位

共轭对称性

共轭对称性

周期卷积

 

循环卷积

圆周卷积和线性卷积的对比

圆周卷积

线性卷积

针对FFT引出的一种表示方法

信号通过线性系统时,信号输出等于输入与系统单位冲激响应的卷积

两序列长度必须相等,不等时按要求补足零值点

两序列长度可以不等

如x1(n)为N1点,x2(n)为N2点

卷积结果长度与两信号长度相等皆为N

卷积结果长度为N=N1+N2-1

第三章快速傅里叶变换

DFT在数字信号处理起着非常重要的作用,而这是与DFT存在着高效算法,即FFT。

他不是一种新型变换,而是减少DFT计算量的一些高效算法。

FFT的运算量的计算,与DFT运算量的比较

N点的FFT的运算量为

复乘:

CM=(N/2)M=(N/2)log2N

复加:

CA=NM=Nlog2N

N点的DFT的运算量为

复乘:

CM=N2

复加:

CA=N(N-1)

第四章数字滤波网络

数字滤波器的功能本质上是将一组输入数字序列通过一定的运算后转变为另一组输出数字序列,其结构表示需要采用加法器,乘法器,延时器等。

IIR滤波器的结构和信号流图:

直接型;级联型;并联型。

FIR数字滤波器的结构和信号流图:

直接型;快速卷积型、频率采样型。

FIR数字滤波器:

非递归结构,无反馈,但在频率采样结构等某些结构中也包含有反馈的递归部分。

级联型结构简化了滤波器发的实现方式,采用一些二阶节,通过适当的系数变换就可以实现整个系统,并且各级联形式子系统的零,极点就是整个系统的零,极点,所以调整子系统系数可以直接控制系统的传输特征。

第五章滤波器设计原理

滤波器是一种具有一定传输特性的信号处理装置。

从广义上讲,凡是有能力进行信号处理的装置都可以成为滤波器。

但一般所讲的滤波器是一种选频器件,他对某些频率的信号衰减很小,允许信号通过,而对其他不需要的衰减很大,尽量阻止这些信号的通过。

比较成熟的几种滤波器:

Butterworth滤波器,Chebyshev滤波器。

对滤波器的技术要求:

中心频率,通带带宽,通带插入损耗,通带波动,阻带衰减。

第六章IIR数字滤波器的设计

 

第八章数字信号处理的实现及应用

自从数字信号处理器(DigitalSignalProcessor)问世以来,由于它具有高速、灵活、可编程、低功耗和便于接口等特点,已在图形、图像处理,语音、语言处理,通用信号处理,测量分析,通信等领域发挥越来越重要的作用。

随着技术成本的降低,控制界已对此产生浓厚兴趣,已在不少场合得到成功应用。

DSP在多媒体通信中的应用,多媒体包括文字、语言、图像、图形和数据等媒体。

多媒体信息中绝大部分是视频数据和音频数据,儿数字化的音、视频数据的数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1