当前位置:主页 > 设计技术 > 控制.单片机 > 正文

XXTEA加密算法的原理及其C语言实现

时间:2019-04-22 17:45 来源:未知 编辑:admin

核心提示

在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据...

 

在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广泛的应用。

TEA算法是由剑桥大学计算机实验室的David WheelerRoger Needham1994年发明,TEATIny EncrypTIon Algorithm的缩写,以加密解密速度快,实现简单著称。TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。为解决TEA算法密钥表攻击的问题,TEA算法先后经历了几次改进,从XTEABLOCK TEA,直至最新的XXTEAXTEA也称做TEAN,它使用与TEA相同的简单运算,但四个子密钥采取不正规的方式进行混合以阻止密钥表攻击。Block TEA算法可以对32位的任意整数倍长度的变量块进行加解密的操作,该算法将XTEA轮循函数依次应用于块中的每个字,并且将它附加于被应用字的邻字。XXTEA使用跟Block TEA相似的结构,但在处理块中每个字时利用了相邻字,且用拥有两个输入量的MX函数代替了XTEA轮循函数。本文所描述的安全机制采用的加密算法就是TEA算法中安全性能最佳的改进版本-XXTEA算法。

XTEA算法的一轮加密过程如图1所示:

 

XXTEA算法的结构非常简单,只需要执行加法、异或和寄存的硬件即可,且软件实现的代码非常短小,具有可移植性,非常适合嵌入式系统应用。由于XXTEA算法的以上优点,可以很好地应用于嵌入式RFID系统当中。

       XXTEA算法的C语言表达:

#define              MX           (z>>5^y<<2) + (y>>3^z<<4)^(sum^y) + (k[p&3^e]^z);

long        btea(long* v, long n, long* k)

{unsigned long z=v[n-1], y=v[0], sum=0, e, DELTA=0x9e3779b9;        long p, q ;  

     if (n > 1) {          /* 加密过程 */

     q = 6 + 52/n;

     while (q-- > 0)

{sum += DELTA;       e = (sum >> 2) & 3;

     for (p=0; p<n-1; p++)        y = v[p+1],        z = v[p] += MX;

        y = v[0];      z = v[n-1] += MX;}

        return 0 ;

    } else if (n < -1) {          /* 解密过程 */

    n = -n;        q = 6 + 52/n;      sum = q*DELTA ;

        while (sum != 0) { e = (sum >> 2) & 3;

        for (p=n-1; p>0; p--) z = v[p-1], y = v[p] -= MX;

        z = v[n-1]; y = v[0] -= MX;         sum -= DELTA; }

     return 0; }  return 1; }

上述算法描述中,v表示为运算的长整型数据的首地址,k为长整型的密钥的首地址,n表示要要运算的组元个数,正表示加密,负表示解密。N是以32bit为基本单位的组元个数。

订正:对于加密的示意图,在Xr-1到>>3那里,是不经历异或的运算的。

下一篇:没有了
  • XXTEA加密算法的原理及其C语言实现 XXTEA加密算法的原理及其C语言实现

    在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据...

  • 非对称密钥RSA加密算法及其密钥产生 非对称密钥RSA加密算法及其密钥产生

    一、 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,...

  • 基于单片机和CDMA的车载温控系统 基于单片机和CDMA的车载温控系统

    摘要:介绍了一种以单片机为核心,基于GSM和CDMA网络的远程智能车载 温控系统 。当停放于烈日之下的汽车车内温度过高、光照过强时,本系统将自动向用户发送温度和光强超标的提示...

  • 单段隔离型功率因数校正LED驱动器 单段隔离型功率因数校正LED驱动器

    功率因数校正,就是将畸变电流校正为正弦电流,并使之与电压同相位,从而使功率因数接近于1。提高功率因数对于降低能源消耗,减小电源设备的体积和重量,缩小导线截面积,减弱...

  • 基于单片机控制的LED水族照明装置设计 基于单片机控制的LED水族照明装置设计

    1 引言 生态水族的主角是鱼、水草,视觉欣赏是其主要功能。光照是其首要解决的三大技术问题之一。 常用的水族照明光源主要有荧光灯、水银灯、卤钨灯等,但其发射光谱与水生物选...

  • 安森美半导体多种非隔离高功率因数LED驱 安森美半导体多种非隔离高功率因数LED驱

    采用交流-直流(AC-DC)电源供电的LED通用照明应用中,常见隔离拓扑结构与非隔离拓扑结构。所谓隔离,是指输入与输出之间采用变压器等进行电气隔离。这两种拓扑结构各有其特点。...

  • 如何解决LED散热难题? 如何解决LED散热难题?

    利用LED实现高亮度照明要求使用厂商允许的最大电流驱动,但LED的平均寿命高度取决于工作温度。工作温度仅上升10C便可使其寿命缩短一半。这种情况迫使设计人员必须降低调节电流,...

  • 飞兆半导体调光技术和无电解电容驱动设 飞兆半导体调光技术和无电解电容驱动设

    高端观点: FL7730驱动器具有功率因数校正(PFC)、TRIAC和模拟调光能力 FL7701具驱动器备软启动功能,可提高系统可靠性并优化电路设计 发展趋势: 飞兆为中、小功率范围LED照明应用提...

  • 安森美半导体AC-DC非隔离高功率因数LED驱 安森美半导体AC-DC非隔离高功率因数LED驱

    采用交流-直流(AC-DC)电源供电的LED通用照明应用中,常见隔离拓扑结构与非隔离拓扑结构。所谓隔离,是指输入与输出之间采用变压器等进行电气隔离。这两种拓扑结构各有其特点。...