Well, the standard Sage operatins seem to be able to do what you want: sage: MS=MatrixSpace(GF(2), 5, 5) sage: MS Full MatrixSpace of 5 by 5 dense matrices over Finite Field of size 2 sage: M=MS.random_element();M [0 0 1 0 1] [0 0 1 1 0] [0 0 0 0 1] [1 1 0 1 0] [0 1 1 0 0] sage: M^-1 [0 1 0 1 1] [1 0 1 0 1] [1 0 1 0 0] [1 1 1 0 0] [0 0 1 0 0] sage: M^-1*M [1 0 0 0 0] [0 1 0 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1]
But I haven't the foggiest notion of their efficiency... Let's see empirically: sage: MS=MatrixSpace(GF(2), 512, 512) sage: M=MS.random_element() sage: while not(M.is_unit()): M=MS.random_element() sage: %time IM=M^-1 CPU times: user 1.86 ms, sys: 0 ns, total: 1.86 ms Wall time: 1.88 ms sage: bool(M*IM==diagonal_matrix(GF(2),[1]*512)) True This should do the trick, no ? Le jeudi 31 octobre 2019 10:51:27 UTC+1, Subrata Nandi a écrit : > > My research area is symmetric key cryptology. I need an efficient > algorithm for solving inverse of symbolic matrix of size 512 x 512 in > GF(2). Can anyone share > Idea regarding that? -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/a551b3f1-2391-40ef-9051-62fb3b523d9b%40googlegroups.com.