使用python调用函数

2024-05-16 10:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们,我对编程完全陌生,我在网上找到了这段代码,我知道它的语法是正确的,但我不知道如何调用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;

Tags: inforoutputdefblockmatrixstategf
1条回答
网友
1楼 · 发布于 2024-05-16 10:07:21

i know it's syntax is correct

不,不是的。在

i don't know how to call the SAES_FromStateMatrix

只要做SAES_FromStateMatrix(state_matrix),其中state_matrix是一些矩阵。在

i mean how to pass a matrix in functions ... in other meaning SAES_FromStateMatrix(what_is_the_syntax_of_this_parameter)

使用与您发布的代码中已经存在的语法相同的语法。你发布的大部分代码都是矩阵的例子。或者,使用一个分配了矩阵的变量,比如SBox_matrix。在

相关问题 更多 >