Sage Tool

Ameychekka
MatrixLinearAlgebraExamples1.doc

Sage includes linear algebra and matrix functionality. The following shows some of the basic functionality applicable to cryptography

In Sage you specify a matrix as a list of lists of numbers, passed to the matrix function.

For example, passing a list of lists of integers as follows:

sage: M = matrix([[1, 3],[7,9]]); M

[1 3]

[7 9]

Alternately, passing a list of lists of rationals as follows:

sage: M = matrix([[1/2, 2/3, 3/4],[5, 7, 8]]); M

[1/2 2/3 3/4]

[ 5 7 8]

You can specify that the input should be reduced by a modulus, using the IntegerModRing (functionality to be described later)

Sage: R = IntegerModRing(100)

sage: M = matrix(R, [[1],[102],[1003]]); M

[1]

[2]

[3]

Or that the input should be considered in a finite field (also to be described later.)

sage: F = GF(2);

sage: M = matrix(F, [[1, 2, 0, 3]]); M

[1 0 0 1]

Sage also supports multiplication, addition, and inversion of matrices as follows:

sage: M1 = matrix([[1, 2],[3,4]]);

sage: M2 = matrix([[1,-1],[1, 1]]);

sage: M1*M2

[3 1]

[7 1]

sage: M1 + M2

[2 1]

[4 5]

sage: M2^-1

[ 1/2 1/2]

[-1/2 1/2]