A method of data embedding based on the convolution of message data with a random phase carrier is presented. The theory behind this method is reviewed and it is shown that the technique can be used to hide both pictorial and non-pictorial data. The details of the procedures used for carrier design, message template optimization, message extraction optimization, block synchronization, and rotation and scale correction are discussed. Finally, the algorithm's benchmark results using Stirmark are presented.