A method for processing image data to be sent to a printer for printing, the method comprising: inputting a session key to a non-linear feedback shift register having a plurality of stages for storing data, each of the stages storing a portion of the session key, at least a potion of the plurality of stages providing the data currently stored therein to a feedback function to generate a current feedback output; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the session key with the current feedback output to produce a first result and storing the first result in a first stage of the non-linear feedback shift register; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the image data with the current feedback output to generate a second result, and storing the second result in the first stage of the non-linear feedback shift register; repeating the clocking of the non-linear feedback shift register using a portion of the image data until all of the image data desired to be secured has been utilized; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the session key with the current feedback output to generate a third result, and storing the third result in the first stage of the non-linear feedback shift register; outputting at least a portion of the data currently stored in the non-linear feedback shift register as a message authentication code for the image data; and sending the image data and the message authentication code to the printer. inputting a session key to a non-linear feedback shift register having a plurality of stages for storing data, each of the stages storing a portion of the session key, at least a potion of the plurality of stages providing the data currently stored therein to a feedback function to generate a current feedback output; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the session key with the current feedback output to produce a first result and storing the first result in a first stage of the non-linear feedback shift register; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the image data with the current feedback output to generate a second result, and storing the second result in the first stage of the non-linear feedback shift register; repeating the clocking of the non-linear feedback shift register using a portion of the image data until all of the image data desired to be secured has been utilized; clocking the non-linear feedback shift register by shifting each stage of the non-linear feedback shift register by one stage, combining a portion of the session key with the current feedback output to generate a third result, and storing the third result in the first stage of the non-linear feedback shift register; outputting at least a portion of the data currently stored in the non-linear feedback shift register as a message authentication code for the image data; and sending the image data and the message authentication code to the printer.