Algebraic codes for data transmission