首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的XTEA测试向量

Python中的XTEA测试向量
EN

Stack Overflow用户
提问于 2013-12-16 17:18:31
回答 1查看 310关注 0票数 0

我正在尝试用Python语言测试xtea算法的this实现。我找到的唯一测试向量是these。如何测试算法的输出,以便逐个字节地进行比较?我应该选择哪一个密码/钥匙?哪种字节顺序最好?(我使用的是64位xubuntu/x86/little endian)

XTEA

代码语言:javascript
复制
# 64 bit block of data to encrypt
v0, v1 = struct.unpack(endian + "2L", block)
# 128 bit key
k = struct.unpack(endian + "4L", key)
sum, delta, mask = 0L, 0x9e3779b9L, 0xffffffffL
for round in range(n):
    v0 = (v0 + (((v1<<4 ^ v1>>5) + v1) ^ (sum + k[sum & 3]))) & mask
    sum = (sum + delta) & mask
    v1 = (v1 + (((v0<<4 ^ v0>>5) + v0) ^ (sum + k[sum>>11 & 3]))) & mask)
return struct.pack(endian + "2L", v0, v1)

初始64位测试输入

代码语言:javascript
复制
# pack 000000 in 64 bit string
byte_string = ''
for c in range(56, -8, -8):
    byte_string += chr(000000 >> c & 0xff)

测试向量(从here复制)

代码语言:javascript
复制
tean values
These are made by starting with a vector of 6 zeroes,
data followed by key, and coding with one cycle then 
moving the six cyclically so that n becomes n-1 modulo 6. 

We repeat with 2-64 cycles printing at powers of 2 in 
hexadecimal.  The process is reversed decoding back 
to the original zeroes which are printed.

  1        0 9e3779b9        0        0         0        0
  2 ec01a1de aaa0256d        0        0         0        0
  4 bc3a7de2 4e238eb9        0        0  ec01a1de 114f6d74
  8 31c5fa6c 241756d6 bc3a7de2 845846cf  2794a127 6b8ea8b8
 16 1d8e6992 9a478905 6a1d78c8  8c86d67  2a65bfbe b4bd6e46
 32 d26428af  a202283 27f917b1 c1da8993  60e2acaa a6eb923d
 64 7a01cbc9 b03d6068 62ee209f  69b7afc  376a8936 cdc9e923
  1        0        0        0        0         0        0
EN

回答 1

Stack Overflow用户

发布于 2013-12-18 04:58:32

您链接到的C代码似乎假设long有32位-- XTEA使用由两个uint32组成的64位块;代码使用两个long,并且不做任何事情来处理在求和/左移时发生的溢出(并传播到以后的计算中)。

python代码允许您选择字节顺序,而C代码将这些数字视为...嗯,数字,所以如果你想比较它们,你需要选择字节顺序(或者如果你懒惰,两个都试一试,看看其中一个是否匹配:)

关于键,我不确定您的问题是什么,所以我猜:如果您不是C程序员,static long pz[1024], n, m;行是一个静态声明,这意味着所有这些值都被隐式初始化为零。

我还漏掉了什么?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20607153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档