0

我正在寻找一种快速计算 galois 域 2 ( GF(2) ) 中矩阵 A 的幂的方法。A是一个双矩阵,它的幂x表示为

A^x = A * A * A * ... * A     (x times)

简单的方法是转换A为 GF(2) (因为给定的矩阵A是双矩阵),然后执行幂运算。Matlab代码

A1 = gf(A, 2) % // convert to galois field
A_pow_x_first = A1^x; % // Perform A^x

但是,这种方式需要很长时间才能将矩阵转换A为 GF(2)。我正在寻找一种没有 GF(2) 转换的快速方法。也就是我用mod操作

A_pow_x_second = mod(A^x, 2)

但是,问题在于第一种方式和第二种方式的结果并不相似。问题是数字溢出。一些成员建议我将矩阵转换A为 int64。但是,我认为这不是处理我的问题的好方法。你能建议我在matlab中做一个快速的方法吗?提前致谢

这是一个简单的例子

>> A = [1     0     1
        0     1     1
        1     1     1]

第一种方式,

>> A_pow_x_first = gf(A, 2)^50

结果:

 0           1           0
 1           0           0
 0           0           1

第二种方式

>> A_pow_x_second = mod(A^50, 2)

A_pow_x_second =

     0     0     0
     0     0     0
     0     0     0

如何在A^x不转换为以第一种方式具有相似结果的 GF(2) 的情况下快速计算?

4

0 回答 0