前言:
在SUSCTF的DigitalCircuits题目中遇到了Tea加密算法,由于没有认出这一算法浪费了大量解题时间,所以特意写这篇博客总结学习一下该类算法的特点
概述:
TEA(Tiny Encryption Algorithm),是一种分组加密算法,实现过程比较简单,效率极高,该系列共三种算法,tea–>xtea–>xxtea,该算法使用了一个来源于黄金比率神秘常数δ作为倍数,以保证每一轮加密都不相同,这个常熟在程序中一般写作0x9E3779B9
。但有时该常数会以减法的形式出现,-0x61C88647=0x9E3779B9
,因此出现了0x61C88647
该常数时也应当注意。
TEA
加密过程:
Python实现
1 | def encrypt(v, k): |
XTEA
XTEA
是 TEA
的升级版,增加了更多的密钥表,移位和异或操作等等。
加密过程:
python实现:
1 | def encrypt(rounds, v, k): |
XXTEA
XXTEA
,又称 Corrected Block TEA
,是 XTEA
的升级版。
加密过程:
python实现:
1 | def shift(z, y, x, k, p, e): |