Scientists have found a way to embed hidden information in ordinary text by imperceptibly changing, or perturbing, the shapes of fonts in text.
The method called FontCode, creates font perturbations, using them to encode a message that can later be decoded to recover the message.
It works with most fonts and, unlike other text and document methods that hide embedded information, works with most document types, even maintaining the hidden information when the document is printed on paper or converted to another file type.
"While there are obvious applications for espionage, we think FontCode has even more practical uses for companies wanting to prevent document tampering or protect copyrights, and for retailers and artists wanting to embed QR codes and other metadata without altering the look or layout of a document," said Changxi Zheng, associate professor at Columbia University in the US.
The method that can embed text, metadata, a URL, or a digital signature into a text document or image, whether it is digitally stored or printed on paper.
It works with common font families, such as Times Roman, Helvetica, and Calibri, and is compatible with most word processing programs, including Word and FrameMaker, as well as image-editing and drawing programs, such as Photoshop and Illustrator.
Since each letter can be perturbed, the amount of information conveyed secretly is limited only by the length of the regular text. Information is encoded using minute font perturbations-changing the stroke width, adjusting the height of ascenders and descenders, or tightening or loosening the curves in serifs and the bowls of letters like o, p, and b.
"Changing any letter, punctuation mark, or symbol into a slightly different form allows you to change the meaning of the document," said Chang Xiao, PhD student at Columbia.
"This hidden information, though not visible to humans, is machine-readable just as barcodes and QR codes are instantly readable by computers. However, unlike barcodes and QR codes, FontCode doesn't mar the visual aesthetics of the printed material, and its presence can remain secret," Xiao said.
Data hidden using FontCode can be extremely difficult to detect. Even if an attacker detects font changes between two texts - highly unlikely given the subtlety of the perturbations - it simply isn't practical to scan every file going and coming within a company.
Furthermore, FontCode not only embeds but can also encrypt messages. While the perturbations are stored in a numbered location in a codebook, their locations are not fixed.
People wanting to communicate through encrypted documents would agree on a private key that specifies the particular locations, or order, of perturbations in the codebook.