TEA加密算法的C/C++实现】的更多相关文章

一.TEA加密算法简介 TEA加密算法是由英国剑桥大学计算机实验室提出的一种对称分组加密算法.它采用扩散和混乱方法,对64位的明文数据块,用128位密钥分组进行加密,产生64位的密文数据块,其循环轮数可根据加密强度需要设定. 文件加密过程中,加法运算和减法运算用作可逆的操作.算法轮流使用异或运算和加法运算提供非线性特性,双移位操作使密钥和数据的所有比特重复地混合,最多16轮循环就能使数据或密钥的单个比特的变化扩展到接近32比特.因此,当循环轮数达到16轮以上时,该算法具有很强的抗差分攻击能力,1…
TEA(Tiny Encryption Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称.算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮.目前我只知道QQ一直用的是16轮TEA.没什么好说的,先给出C语言的源代码(默认是32轮): void encrypt(unsigned long *v, unsigned long *k) { unsig…
1.     DES算法介绍: DES算法具有对称性, 既可以用于加密又可以用于解密.对称性带来的一个很大的好处在于硬件实现, DES 的加密和解密可以用完全相同的硬件来实现.DES 算法的明文分组是64 位, 输出密文也是64 位.所以密钥的有效位数是56 位, 加上校验位共64 位.总体流程如表1 所示:输入的64 位明文, 先经初始IP 变换, 形成64 位数据,64 位数据被分为两部分, 分别是L 部分和R 部分; L 和R 经过16 次迭代, 形成新的64 位; 新的64 位数据再经初…
tea 介绍 "TEA" 的全称为"Tiny Encryption Algorithm" 是1994年由英国剑桥大学的David j.wheeler发明的. TEA算法也算是微型加密算法 在安全学领域,TEA(Tiny Encryption Algorithm)是一种分组加密(CBC)算法,它的实现非常简单,通常只需要很精短的几行代码. 分组加密(CBC)加密 CBC模式的加密方式是通过一个初始向量(IV)先和明文分组第一组异或后使用秘钥K加密,作为第一组密文,同时…
这个算法简单,而且效率高,每次可以操作8个字节的数据,加密解密的KEY为16字节,即包含4个int数据的int型数组,加密轮数应为8的倍数,一般比较常用的轮数为64,32,16,推荐用64轮. 源代码如下:/** *//*** Tea算法* 每次操作可以处理8个字节数据* KEY为16字节,应为包含4个int型数的int[],一个int为4个字节* 加密解密轮数应为8的倍数,推荐加密轮数为64轮* */public class Tea {//加密public byte[] encrypt(byt…
我们要讨论的最后一个分组密码加密算法是TEA(Tiny Encryption Algorithm).到目前为止,我们在前面所呈现的连线图可能会使你得出如下结论:分组密码加密算法必须是复杂的.TEA却能够很好地说明,事实并非如此. TEA算法使用64位长度的分组和128位长度的密钥.该算法设定基于32位单词的计算结构,其中所有的操作都是内在地模232的,任何第32位之后的二进制位都会被自动地截除.计算的轮数是可变的,但是必须足够大.通常明智的做法是选择32轮以确保安全.不过,TEA算法的每一轮更像…
源:单片机上使用TEA加密通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 单片机:STM32 说明: 在项目中单片机会与服务器进行网络通讯.需要对通讯加密,我选择了TEA加密算法. 源码: tea.h /********************************************************************* * TEA算法头文件 * (c)copyright…
最近在做数据加密,目标是实现平台app的数据安全性,所以准备使用AES+Base64进行加密,适逢一个特长的json串AES加密不了,于是在谷歌了各种算法,判断是否合用,参见 各种加密算法比较 一文中对各种算法进行了详尽的比较.由于长字符串AES对其束手无策,所以打算试试这个最快的TEA算法,遂扒了扒,找到一个07年的老帖子,帖子链接 TEA加密算法java版 ,又因为作者是为了完成游戏的存储,所以有一个类找不到,所以我把代码拿过来进行了小小的修改,分享之.侵权删. package com.wo…
在游戏项目中,一般需要对资源或数据进行加密保护,最简单高效的加密算法就是采用位与或之类的,但是比较容易被人分析出来.TEA加密算法不但比较简单,而且有很强的抗差分分析能力,加密速度也比较快.可以根据项目需求设置加密轮数来增加加密强度.1.加密核心函数 void EncryptTEA(unsigned int *firstChunk, unsigned int *secondChunk, unsigned int* key) { unsigned int y = *firstChunk; unsi…
上上周参加了阿里的CTF,靠着最后绝杀队伍有幸拿到了国内第一名,也顺利进入了XCTF Final.把自己做的几个题简单写了下,发出来也算个总结吧. PWN-FB 经典的null byte overflow加上unlink,覆盖下一个堆块SIZE字段的pre_inuse字段,free时造成后向融合,unlink时可以写msg全局管理结构(设为gl)指向&gl-3.这样通过set message就可以任意地址写,此外,将free@got修改为printf@plt,这样每次free的时候都可以泄露指定…