SAES_FromStateMatrix
函数所以请帮助我
这是代码
F = GF(2);
L.<a> = GF(2^4);
V = L.vector_space();
VF8 = VectorSpace(F, 8);
MixColumns_matrix = Matrix(L, [[1,a^2],[a^2,1]]);
InverseMixColumns_matrix = MixColumns_matrix.inverse();
SBox_matrix = Matrix(L,
[
[ 1 + a^3, a^2, a + a^3, 1 + a + a^3],
[ 1 + a^2 + a^3, 1, a^3, 1 + a^2],
[ a + a^2, a, 0, 1 + a],
[ a^2 + a^3, a + a^2 + a^3, 1 + a + a^2 + a^3, 1 + a + a^2]
]);
InverseSBox_matrix = Matrix(L,
[
[ a + a^3, 1 + a^2, 1 + a^3, 1 + a + a^3],
[ 1, 1 + a + a^2, a^3, 1 + a + a^2 + a^3],
[ a + a^2, 0, a, 1 + a],
[ a^2 + a^3, a^2, 1 + a^2 + a^3, a + a^2 + a^3]
]);
RCON = [
VF8([F(0), F(0), F(0), F(0), F(0), F(0), F(0), F(1)]),
VF8([F(0), F(0), F(0), F(0), F(1), F(1), F(0), F(0)])
];
def SAES_ToStateMatrix(block):
B = block
S00 = L(V([B[0], B[1], B[2], B[3]]));
S01 = L(V([B[4], B[5], B[6], B[7]]));
S10 = L(V([B[8], B[9], B[10], B[11]]));
S11 = L(V([B[12], B[13], B[14], B[15]]));
state_matrix = Matrix(L, [[S00,S01],[S10,S11]]);
return state_matrix;
def SAES_FromStateMatrix(state_matrix):
output = [];
for r in xrange(2):
for c in xrange(2):
v = V(state_matrix[r,c]);
for j in xrange(4):
output.append(Integer(v[j]));
return output;
答案 0 :(得分:0)
我知道它的语法是正确的
不,不是。
我不知道如何调用SAES_FromStateMatrix
只需SAES_FromStateMatrix(state_matrix)
,其中state_matrix
是某个矩阵。
我的意思是如何在函数中传递矩阵......其他意思是SAES_FromStateMatrix(what_is_the_syntax_of_this_parameter)
使用与您发布的代码中已存在的相同的语法。您发布的大多数代码都是矩阵的示例。或者,使用已分配矩阵的变量,如SBox_matrix
。