Code covered by the BSD License  

Highlights from
A toolbox for simple finite field operation

Be the first to rate this file! 11 Downloads (last 30 days) File Size: 10.9 KB File ID: #32872

A toolbox for simple finite field operation

by Samuel Cheng

 

13 Sep 2011 (Updated 04 Sep 2012)

This is a toolbox providing simple operations (+,-,*,/,.*,./,inv) for finite field.

| Watch this File

File Information
Description

This toolbox can handle simple operations (+,-,*,/,.*,./,inv) of GF(p^n) for any p and n. Examples are given below (also documented in gf_test.m).

If you find any bug or have any concern/comment, please contact me.

% setup path
java_path_setup;
% create gf class of 3^2
gf9=gf(3,2);

%%%%
% Eg. 1
a=[2 1;1 0]

% compute rank
gf9.rank(a)

% compute inverse
inva = gf9.inv(a)

% Check inverse
a_times_ainva=gf9.mult(a,inva)

% matrix divide
gf9.div(a,a)

%%%%%
% Eg. 2
b=[1 2 1;1 0 1];
c=[1 1 0;2 1 1];

% compute summation
gf9.add(b,c)

% compute subtraction
gf9.sub(b,c)

% compute dot multiplication
gf9.dmult(b,c)

% compute dot division
gf9.ddiv(b,c)

% output the primitive polynomial
gf9.return_primitive_polynomial % x^2 + 1

% show polynomial representation
gf9.return_poly_representation(5) % x + 2

%%%%
% Eg. 3

% manipulating polynomials.

a=[1 2 1 1];
b=[1 3 1];

gf9.conv(a,b)

[q,rem]=gf9.deconv(a,b)

MATLAB release MATLAB 7.11 (R2010b)
Tags for This File  
Everyone's Tags
finite field, galois field, gf, oop
Tags I've Applied
Add New Tags Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (2)
30 Aug 2012 Samuel Cheng

@Valentina's comments, I have added functions for multiplying and dividing polynomials.

01 Aug 2012 Valentina

Hi Samuel,
I'm trying to use this code to perform some AES operations... What I need is e.g. to define a polynomial which can have a max degree = 7, with coefficients 0 and 1. (i.e., over GF(2)), and then compute its inverse modulo a poly of degree 8, again with binay coeffs. I can't figure out how to declare the gf, which in your example is gf9=gf(3,2); and then how do i define the poly? what does the 2 line matrix in your example mean, a=[2 1;1 0]?
Thanks!

Updates
14 Sep 2011

Oops, found two silly bugs. First, an error check condition was corrected.

Second, I guess it is probably the safest to run a separate script to setup path and so I extracted that part out.

04 Sep 2012

Added new functionality to manipulate polynomials.

Contact us